1

我在 android 上做一个 2D 游戏,一切正常。问题是这个角色在我的手机(Xperia)上移动得非常快,但在屏幕更宽的手机上,他跑得非常慢。我尝试获取屏幕宽度并除以 100 并将其设置为步长,因此角色将根据宽度有一个步长 - 不起作用。有没有办法获得某种缩放像素或其他东西。感谢帮助:)

这是我做的人:

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;

想法?

4

3 回答 3

1

这对我有用。

int height = Resources.getSystem().getDisplayMetrics().heightPixels;
int width = Resources.getSystem().getDisplayMetrics().widthPixels;
于 2012-07-02T16:35:27.780 回答
0

将步幅乘以displaymetrics.density。这有效地将“px”值转换为“dp”值,即它应该在所有设备上具有相同的物理宽度。

于 2012-07-02T16:28:40.587 回答
0

您想要根据默认值 160 的密度比例,它是一个乘数,当您获得以像素为单位的高度和宽度时,您可以在代码中使用这个乘数来正确缩放。

请参阅下面链接的开发人员页面的密度部分。

http://developer.android.com/reference/android/util/DisplayMetrics.html#density

于 2012-07-02T16:29:22.337 回答