在画布中连续更改位图位置,使用invalidate在不同分辨率屏幕上显示不同的行为

时间:2014-06-12 04:24:24

标签: android canvas bitmap screen-resolution ondraw

我正在开发一个游戏,我正在使用invalidate在画布上增加位图的位置,所以现在就像在屏幕上移动图像一样,我将位置递增1,所以(x,y)的值增加位图正在改变。 我的问题是通过值1增加画布上的位置显示在较高分辨率下非常慢并且在ldpi和mdpi设备中很好。我找不到实际问题.. 问题是每秒的密度或帧数或某些东西。帮助我。

1 个答案:

答案 0 :(得分:0)

如果您想在所有设备中使用相同的速度,则需要将增量值乘以density。我们假设您的增量值为1px,那么您需要使用

1 * getResources().getDisplayMetrics().density;

这将确保在更高密度的设备中,增量值更多是为了保持速度相同。(例如,在hdpi中它将是1.5,在xhdpi中它将是2.0等。希望它有所帮助!