我正在努力让设备显示对角线长度。我使用了公式,对角线 = 宽度 * 宽度 + 高度 * 高度。为了实现这一点,我使用下面的代码。
DisplayInfo aDisplayInfo = new DisplayInfo();
DecimalFormat twoDecimalForm = new DecimalFormat("#.##");
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
aDisplayInfo.widthInch = (dm.widthPixels * dm.density) / (dm.xdpi * 2);
aDisplayInfo.heightInch = ((dm.heightPixels * dm.density) / (dm.ydpi * 2));
aDisplayInfo.widthPix = dm.widthPixels;
aDisplayInfo.heightPix = dm.heightPixels;
// approaach 1
aDisplayInfo.diagonalInch = twoDecimalForm.format(Math.sqrt(Math.pow(
aDisplayInfo.widthInch, 2)
+ Math.pow(aDisplayInfo.heightInch, 2)));
运行此代码后,我在不同的设备中发现了不同的结果。喜欢:
- 三星 Galaxy S3 = 4.8 英寸(正确)
- HTC One X = 6.8 英寸(错误)[将是 4.7 英寸]
这段代码有什么问题?任何形式的帮助将不胜感激。