小编thi*_*olr的帖子

如何在发布之前重置Google Play游戏排行榜?

我已经做了一些测试,同时将新的Google Play游戏与假分数相结合,现在我需要在发布游戏之前重置排行榜!

我发现了这个REST API:https://developers.google.com/games/services/management/api/?hl = en #Scores

但这似乎只与网页游戏有关,而不是Android游戏:"使用Google Play游戏服务REST API设置和检索网页游戏中的游戏服务数据"

谢谢!

android google-play-services

31
推荐指数
2
解决办法
2万
查看次数

使用FLAG_ACTIVITY_REORDER_TO_FRONT时,overridePendingTransition不起作用

我在堆栈中有两个活动,为了显示它们我使用FLAG_ACTIVITY_REORDER_TO_FRONT.到目前为止,当我想使用overridePendingTransition为动画带来动画时,问题就出现了.

Intent i = new Intent(ActivityA.this, ActivityB.class);
i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
ActivityA.this.startActivity(i);
overridePendingTransition(R.anim.transition_to_right, R.anim.transition_to_left);
Run Code Online (Sandbox Code Playgroud)

但是,如果没有将标志添加到意图(删除第2行),则不会显示转换,则没有问题.

是否可以通过动画将活动带到前面?

非常感谢!

flags android transition android-intent

26
推荐指数
4
解决办法
3万
查看次数

如何在没有MediaExtractor的情况下为H264使用MediaCodec

我需要在没有MediaExtractor的情况下使用MediaCodec,我正在使用FileInputStream读取文件.目前它不工作,它在屏幕上显示绿色的乱码图像.

这是完整的源代码:

FileInputStream in = new FileInputStream("/sdcard/sample.ts");

String mimeType = "video/avc";
MediaCodec decoder = MediaCodec.createDecoderByType(mimeType);
MediaFormat format = MediaFormat.createVideoFormat(mimeType, 1920, 1080);

byte[] header_sps = { 0, 0, 0, 1, 103, 100, 0, 40, -84, 52, -59, 1, -32, 17, 31, 120, 11, 80, 16, 16, 31, 0, 0, 3, 3, -23, 0, 0, -22, 96, -108 };
byte[] header_pps = { 0, 0, 0, 1, 104, -18, 60, -128 };
format.setByteBuffer("csd-0", ByteBuffer.wrap(header_sps));
format.setByteBuffer("csd-1", ByteBuffer.wrap(header_pps));
format.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, 1920 * 1080);
format.setInteger("durationUs", 63446722); …
Run Code Online (Sandbox Code Playgroud)

android transport-stream h.264 stagefright mediacodec

24
推荐指数
2
解决办法
2万
查看次数

18
推荐指数
3
解决办法
3万
查看次数

活动生命周期X电源按钮X锁定屏幕

当我按下电源键时,屏幕关闭(完全黑暗),系统会破坏我的活动,然后重新创建它:

03-28 22:48:00.934: V/[BB](5809): [GameControl] onPause
03-28 22:48:01.444: V/[BB](5809): [GameControl] onDestroy
03-28 22:48:01.724: V/[BB](5809): [GameControl] onCreate
03-28 22:48:03.016: V/[BB](5809): [GameControl] onResume
03-28 22:48:03.016: V/[BB](5809): [GameControl] onPause
Run Code Online (Sandbox Code Playgroud)

这是因为我的活动具有固定方向(横向)并且锁定屏幕是纵向.

我通过设置固定的纵向方向测试了这个理论,但问题没有发生.我还检查了getResources().getConfiguration()值:

{ scale=1.0 imsi=724/31 loc=pt_BR touch=3 keys=2/1/1 nav=1/1 orien=2 layout=17 uiMode=17 seq=36}
{ scale=1.0 imsi=724/31 loc=pt_BR touch=3 keys=2/1/1 nav=1/1 orien=1 layout=17 uiMode=17 seq=37}
{ scale=1.0 imsi=724/31 loc=pt_BR touch=3 keys=2/1/1 nav=1/1 orien=2 layout=17 uiMode=17 seq=38}
Run Code Online (Sandbox Code Playgroud)

怎么可以避免呢?我不希望锁定屏幕破坏我的活动!

android android-lifecycle

15
推荐指数
1
解决办法
5833
查看次数

如何修复Snackbar的高度和位置?

Android支持库24.1.1上,Snackbar工作正常:

之前

然后从Android支持库24.2.0开始,Snackbar开始表现如下:

后

在库修订历史记录中,有以下语句:

行为更改:如果状态栏是半透明的,Snackbar现在会在导航栏后面绘制.

但问题是我的应用程序是全屏的,它没有导航栏或状态栏.我该如何解决?

android android-support-library android-design-library android-snackbar

6
推荐指数
4
解决办法
9249
查看次数

Play商店应用的详细视图中的游戏功能部分

如果您搜索Super Stickman Golf 2,您将看到一个名为"游戏功能"的部分,其中显示了可用的功能(多人游戏和成就).

但我的游戏Minesweeper 3D,也有谷歌Play游戏支持(排行榜和成就)没有这一部分.

问题是:我是否必须做任何事情,或谷歌手动为所选应用添加此部分?


超级火柴人高尔夫2截图:

超级火柴人高尔夫2


扫雷3D屏幕截图:

在此输入图像描述

android google-play google-play-services

5
推荐指数
1
解决办法
747
查看次数

如何区分D-pad运动和操纵杆运动?

我需要有两种不同的行为,一种用于D-pad,另一种用于模拟游戏杆(在同一游戏板上)。

问题是在onGenericMotionEvent回调上,两者在上都有相同的信息,因此MotionEvent我无法区分它们。

// d-pad
MotionEvent { action=ACTION_MOVE, id[0]=0, x[0]=-1.5259255E-5, y[0]=-1.5259255E-5, toolType[0]=TOOL_TYPE_UNKNOWN, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=151637936, downTime=0, deviceId=5, source=0x1000010 }

// analog joystick
MotionEvent { action=ACTION_MOVE, id[0]=0, x[0]=0.64507514, y[0]=0.710811, toolType[0]=TOOL_TYPE_UNKNOWN, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=151650802, downTime=0, deviceId=5, source=0x1000010 }
Run Code Online (Sandbox Code Playgroud)

是否可以确定正在使用哪种输入?怎么样?

android gamepad android-tv

5
推荐指数
1
解决办法
889
查看次数

如何在游戏中正确使用SoundPool?

我在使用SoundPool时遇到了性能问题.每次播放声音时,帧速率都会下降.我添加了一些日志,我可以在logcat上看到"播放"功能有时需要8ms.

我正在使用*.ogg文件,SoundPool初始化在应用启动时完成:

mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
mSoundPool = new SoundPool(size, AudioManager.STREAM_MUSIC, 0);
mSoundPoolMap = new HashMap<Integer, Integer>();
mSoundPoolMap.put(index, mSoundPool.load(context, R.raw.shot, 1));
Run Code Online (Sandbox Code Playgroud)

要播放声音,我使用以下代码(在游戏循环内):

mSoundPool.play(id, streamVolume, streamVolume, 1, loop, 1f);
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 我应该在游戏循环之外的另一个线程上调用"play"吗?
  • 我应该通过服务叫"玩"吗?
  • 我做错了吗?

谢谢!


更新:

我刚测试在另一个线程上播放声音并通过服务播放声音,但滞后仍然存在.

然后我做了以下测试:*以1000毫秒的间隔播放声音 - >总是发生滞后*以200毫秒的间隔播放声音 - >延迟从不发生

怎么可能?!?!?经过这些测试后,似乎没有播放时,SoundPool正在重置,当它再次播放时,初始化需要更长时间......非常奇怪!

android soundpool

2
推荐指数
1
解决办法
6859
查看次数