我在Android上做2D游戏,一切正常。问题是角色在我的手机上移动速度非常快(Xperia),但是在屏幕宽得多的手机上,他的速度非常慢。我尝试获取屏幕宽度并除以100并将其设置为步骤,以便角色根据宽度有一个步骤 - 不起作用。 是否有某种方法可以获得某种缩放像素或其他东西。感谢帮助:)
这是我做的人:
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
想法?
答案 0 :(得分:1)
这适合我。
int height = Resources.getSystem().getDisplayMetrics().heightPixels;
int width = Resources.getSystem().getDisplayMetrics().widthPixels;
答案 1 :(得分:0)
将步长乘以displaymetrics.density
。这有效地将“px”值转换为“dp”值,即它应该在所有设备上具有相同的物理宽度。
答案 2 :(得分:0)
您希望密度值根据默认值160,它是一个乘数,当您获得高度和宽度(以像素为单位)时,您可以在代码中使用此乘数来正确缩放。
请参阅下面链接的开发者页面的密度部分。
http://developer.android.com/reference/android/util/DisplayMetrics.html#density