Java 默认分辨率低于设备的实际分辨率

Java 默认分辨率低于设备的实际分辨率,java,android,Java,Android,我用过 DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); cube.height=metrics.heightPixels; cube.width=metrics.widthPixels; 获取我的显示器的高度和宽度,但我的索尼xperia p设备的分辨率很低,它是qhd显示器。从这个函数中,我只能得到高度=569像素,宽度=320

我用过

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
cube.height=metrics.heightPixels;
cube.width=metrics.widthPixels;
获取我的显示器的高度和宽度,但我的索尼xperia p设备的分辨率很低,它是qhd显示器。从这个函数中,我只能得到高度=569像素,宽度=320像素 我不明白为什么这显示得更低。我认为这给了我虚拟的解决方案,而不是真实的解决方案。我使用简单的视图和ondraw方法绘制画布


请帮忙。

也许你应该试试这样的东西:

Display display = getWindowManager().getDefaultDisplay();     
Method mGetRawH = Display.class.getMethod("getRawHeight");
Method mGetRawW = Display.class.getMethod("getRawWidth");
int rawWidth = (Integer) mGetRawW.invoke(display);
int rawHeight = (Integer) mGetRawH.invoke(display);

引用一个网站的话。

DisplayMetrics对分辨率的要求是多少?屏幕的实际像素大小是多少?thanx这一个显示了我设备的真实分辨率。但我认为画布得到了虚拟分辨率,我是说,当我使用
canvas.drawtext(“…”,320,0,paint)
时,字符串只隐藏在左端,因为我的设备有540宽,所以我猜它一定是左偏中偏小,但它没有。它就像画布一样,具有较低的ppi。我试着在另一款手机上使用qvga显示器,它显示的分辨率比原来的设备要高,而且似乎可以用高ppi绘制画布。我不明白。我如何用设备的真实分辨率绘制画布。不幸的是,我对画布及其工作原理不太熟悉。我建议你再问一个问题。如果我的回答对这个问题有帮助,请接受和/或投票!对不起,我帮不上忙。你说隐藏在左边的绳子是什么意思?drawText将像素x和y作为文本左上角的位置参数。您确定画布正确放置在绘图位置(宽度、高度、坐标)吗?这里的屏幕截图可能会有所帮助。