如何在差异android屏幕尺寸和分辨率上获取相同尺寸的游戏元素

问题描述:

我想要在不同的android设备上获得类似尺寸的游戏对象,这意味着不同的屏幕尺寸和分辨率,有没有什么办法可以示例recalcualt例如1cm到像素。如何在差异android屏幕尺寸和分辨率上获取相同尺寸的游戏元素

我的意思是重新计算它的屏幕分辨率和大小,并获得对应于实际大小的像素数。

当我在xml中创建android UI时,我读到了与设备无关的像素,但它对我来说似乎并不好,因为我在OpenGL中执行此操作,并且简单地想重新计算像素的实际大小。

使用屏幕dpi可能工作。 This post解释如何使用DisplayMetrics获取它。

  1. 使用getHeight()和getWidth()方法来获取游戏视图的高度和宽度。
  2. 定义相对于视图高度和宽度的所有游戏对象尺寸。

另外,不要在视图的构造函数中调用getHeight()和getWidth(),因为尚未创建视图表面,所以这将返回0。我正在为我的游戏使用SurfaceView,并且我正在使用surfaceCreated()方法调用这些方法。

+0

不,这是错误的,我将在不同的屏幕直径上有不同的尺寸 – michael 2012-01-19 09:33:26

+0

“重新计算屏幕分辨率和尺寸,并获得对应于实际尺寸的像素数量”...如果您试图让您的对象大小相对于屏幕大小,这将让你完全是...... – 2012-01-20 05:57:36