Android - 正确的移动布局/ ImageViews的方法

时间:2014-08-13 13:02:24

标签: android android-layout

首先为我的英语道歉。我开始使用Android开发游戏,我已经完成了一个像朋友婚礼的测试(https://play.google.com/store/apps/details?id=com.vicgames.polaravalanche)。

在不同的设备上测试它,我看到的是:

  • 在三星Galaxy和Neo N003中(我猜它会发生在更多设备上,无论是android的版本),当鲨鱼从龙卷风中发射时,它们不可见(但它们会击中玩家)
  • Nexus 5(我已经完成了大部分测试)可以按我的意愿工作。
  • 对于其他设备,发射鲨鱼的速度通常比Nexus 5快,但效果很好

以发射鲨鱼为例,但基本上问题主要集中在移动任何布局/ Imageview上。

我提供了一个示例代码,尽管我尝试过不同的方法:

  • tiburon.animate()。translationX(x).translationY(y).setInterpolator(new LinearInterpolator())。setDuration(velocidadTiburon)
  • 最终的ObjectAnimator animX = ObjectAnimator.ofFloat(shark," translationX",x);
  • 同样使用相同的ObjectAnimator但使用" x"而不是translationX和Y.
  • 我还尝试使用TranslateAnimation计算值或相对值。
  • 我也尝试过layoutParams.leftMargin。
  • 我也直接尝试了setX和setY。

但我认为这不是正确的方法,因为取决于我是否使用其中一种,它在所有设备上都不起作用。也许问题不是像我一样,可能是我如何计算位置(像素,dps),但我又尝试了不同的方法,但仍然因设备而异。

也许我没有必要像这个游戏中的背景一样直接移动布局/图像,同步(surfaceHolder)和画布中的绘画。但我不知道你必须这样做,因为对于这么简单的东西,我认为如果他们直接移动布局/ Imageview,对于任何设备应该是相同的。

我也想知道问题是否会出现在动作/动画的持续时间内,也许我需要根据设备的大小来区别对待。

谢谢和问候

1 个答案:

答案 0 :(得分:0)

我回答我的问题,因为我找到了原因。当我使用手机时,我已经修改了Nexus 5中的一些开发选项,使其全部更快"。我已将选项从1x更改为1.5x,因此性能不同:

  • Windows动画比例。
  • 过渡动画比例。
  • Animator持续时间刻度。

亲切的问候。