如何在摩托罗拉milestone,android中获得屏幕宽度和高度

如何在摩托罗拉milestone,android中获得屏幕宽度和高度,android,Android,我使用了以下方法来获得屏幕宽度和高度。当我在摩托罗拉运行我的应用程序时,我得到了宽度=320像素,高度=533像素。但motorla milestone的尺寸是480 x 854像素。如何将高度设置为854,宽度设置为480 看 输出 w1=320…h1=533…w2=320…h2=533我没有尝试过这个,但从您迄今为止的尝试来看,我愿意打赌这会奏效: DisplayMetrics metrics = getResources().getDisplayMetrics(); float width

我使用了以下方法来获得屏幕宽度和高度。当我在摩托罗拉运行我的应用程序时,我得到了宽度=320像素,高度=533像素。但motorla milestone的尺寸是480 x 854像素。如何将高度设置为854,宽度设置为480 看

输出
w1=320…h1=533…w2=320…h2=533

我没有尝试过这个,但从您迄今为止的尝试来看,我愿意打赌这会奏效:

DisplayMetrics metrics = getResources().getDisplayMetrics();
float width = metrics.widthPixels * metrics.xdpi;
float height = metrics.heightPixels * metrics.ydpi;
编辑:您也可以尝试

第二次编辑:划掉它。我的第一个解决方案不正确,而我的第二个解决方案仅为API级别13+。然而,我已经尝试了你的两种方法,它们在a(安卓2.2)和a(安卓2.3.4)上工作正常。这可能是摩托罗拉的错。您的手机操作系统有任何官方更新吗?

请尝试以下内容

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    Log.i(TAG, "Width " + display.getWidth() + "\t\t Height :" + display.getHeight());

我尝试了以下方法。这对我有用

WindowManager windowManager = (WindowManager) activity.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
int height = windowManager.getDefaultDisplay().getHeight();
int width = windowManager.getDefaultDisplay().getWidth();

这对我不起作用。我得到了宽度=51200.o和高度=85280.0我正在告诉你我得到了什么结果正如我在(编辑)回答中所说的,我认为这是你的特定设备的问题。您两种获取屏幕宽度/高度的方法在两种不同的设备和操作系统版本上都适用于我。我也在HTC Hero 2.1上测试了这两种方法,它们都很好。@Deepakkk我知道,我只是想确认Felix的答案;也许你应该改变你的问题标题,更具体一点。OP已经尝试过了。看在独角兽的份上,在回答之前先阅读问题!Thx Felix,但答案是在我打字时给出的,我的页面没有刷新。当我提交时,我意识到有人已经回答了这个问题,您之所以看到320x533而不是480x854,是因为您处于甜甜圈兼容模式。将您的
targetSdkVersion
设置为>=4应该可以解决这个问题。兼容性模式基本上迫使你的应用程序认为它运行在类似HVGA的手机上,以兼容1.6版本之前的操作系统。因此,像素坐标被缩小到2/3实像素。
WindowManager windowManager = (WindowManager) activity.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
int height = windowManager.getDefaultDisplay().getHeight();
int width = windowManager.getDefaultDisplay().getWidth();