DisplayMetrics获取屏幕参数

来源:互联网 发布:java时间戳转换年月日 编辑:程序博客网 时间:2024/06/04 17:40

如果要获取屏幕的长宽像素数和DPI等信息,网上随便一搜都是使用:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

但是上述代码在milestone上横屏程序上运行后metrics.widthPixels=569,metrics.heightPixels=320,而实际上milestone的分辨率是854*480。google了一下,有如下说法:

“You may be missing the <uses-screens> element in your manifest, and so
you may be in a compatibility mode, with Android scaling everything
automatically.”

有一点问题,文档里根本找不到这个<uses-screens>,但是可以使用<supports-screens android:anyDensity="true"/>,这样设置之后可以正确获取到854*480,densityDpi为240,与moto官网上给出的值相同。

但是xdpi和ydpi还是96,据说This is a known bug. 此网页上还有一“Thanks. I just verified that xdpi and ydpi return 254 on a Nexus One device.”,看来还是自家的亲啊。

原创粉丝点击