Android:动画对象不同的速度acrros差异设备

时间:2017-03-02 14:18:48

标签: android performance android-animation dpi

我有一个问题是在不同的Android设备上获得相同的球速。它是一个带有弹跳球的爆发游戏。我已经在我的galaxy s7上开发了应用程序,但是当我在s3上测试时,球和其他物体的速度提高了大约30%,或者是什么???。

  • 我正在使用surfaceview,帧率是常数,大约是60fps
  • 将ballpeed设置为dp的termn并存储为xml资源。 (与球半径相同)

     <dimen name="ballSpeed">5dp</dimen>
     <dimen name="ballRadius">6.25dp</dimen>
    

我只是检索存储在资源文件

中的字段
float ballSpeed = createGC.getContext().getResources().getDimensionPixelSize(R.dimen.ballSpeed);

然后将ballpeed传递给ball-objects构造函数

那么如何解释速度差异呢? fps是相同的速度,半径以dpi表示。但不知何故,三星Galaxy s3的速度更快。我想这可能与屏幕尺寸有关。

s7 inch: 5.1
s3 inch: 4.8

所以我的问题是:

不同的屏幕显示可以解释他的速度差异吗? 我怎么可能考虑到这一点?

2 个答案:

答案 0 :(得分:0)

here中所述,dp在每个屏幕上都没有相同的尺寸。你可以改变你的单位。(比如in,mm或pt)

答案 1 :(得分:0)

不同速度的标准是什么?球移动不同的像素量或显示部分?

此标准会影响为球速选择的大小单位。如果球应该在屏幕的同一部分,可能dp是最好的方式。如果它应该移动相同的物理距离(例如英寸),请使用inpt