我正在努力让设备显示对角线长度。我使用了公式,对角线=宽度*宽度+高度*高度。为实现这一点,我使用下面的代码。
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)));
运行此代码后,我在不同的设备中发现了不同的结果。喜欢:
这段代码有什么问题?任何形式的帮助将不胜感激。
答案 0 :(得分:0)
试试这个:
aDisplayInfo.widthInch = dm.widthPixels / dm.xdpi;
aDisplayInfo.heightInch = dm.heightPixels / dm.ydpi;
widthPixels
/ heightPixels
应为物理像素数。 xdpi
/ ydpi
应为每英寸像素数。您不需要对这些值进行任何缩放。