我正在努力在我的 Android 应用程序中支持多种屏幕尺寸,我需要知道设备的物理屏幕尺寸。
在索尼爱立信 X10 上,我正在查询物理屏幕分辨率和密度,并尝试计算屏幕尺寸(分辨率/密度 = 尺寸),但结果大约是实际尺寸的 1.5 倍!
这是代码:
DisplayMetrics metrics = c.getResources().getDisplayMetrics();
mPhysicalScreenWidth = metrics.widthPixels / metrics.xdpi;
mPhysicalScreenHeight = metrics.heightPixels / metrics.ydpi;
Log.d(TAG, "DisplayMetrics: widthPixels=" + metrics.widthPixels + " xdpi=" + metrics.xdpi +
" heightPixels=" + metrics.heightPixels + " ydpi=" + metrics.ydpi);
Log.d(TAG, "Physical screen width=" + mPhysicalScreenWidth + "\", height=" + mPhysicalScreenHeight + "\"");
日志中的输出:
DisplayMetrics: widthPixels=480 xdpi=160.41878 heightPixels=854 ydpi=159.49677
Physical screen width=2.9921684", height=5.3543406"
这个实际尺寸只有 2 英寸(宽)x 3.5 英寸(高)!?
难道我做错了什么?
我正在使用 Android 1.6 SDK,并且已将清单中的所有 <supports-screens> 属性设置为 true。