如何计算Android设备的PPI。最具体的Android平板电脑。 请注意,我想计算设备的PPI而不是DPI。
答案 0 :(得分:2)
很容易就像一两三=)让我们将 PPI 计算到 Nexus 5 ,例如。
float LCD_Diagonal = 4.95f;
int screenHeightPx = 1920;
int screenWidthPx = 1080;
float PPI = (float)Math.sqrt((double)(screenWidthPx*screenWidthPx + screenHeightPx*screenHeightPx))/LCD_Diagonal;
Log.e(TAG, "display_page_screen_ppi: " + String.format(Locale.getDefault(),"%d %s", Math.round(PPI), "ppi"));
结果我们445 ppi
符合documentation的要求。
答案 1 :(得分:-1)
屏幕密度以每英寸像素数,PPI 为单位,是适合一英寸的像素数。数字越高,显示屏上的图像越清晰,因此消费者认为高PPI数字在购买设备时具有优势。有时这个数字被引用为Dots Per Inch,DPI,尽管DPI的使用因打印术语而引起混淆,它可以指数字扫描仪和数码相机中传感器的灵敏度。对于Android屏幕,当涉及到PPI与DPI时,使用PPI并让DPI参考打印机,它实际上是一种不同的测量(因为在纸上生成高质量图像所需的点密度更大)。
可以在给定屏幕的分辨率(x和y像素的数量)和尺寸(可见区域的对角线测量)的情况下计算屏幕的PPI图。使用毕达哥拉斯定理计算对角线中的像素数,然后将结果除以屏幕尺寸。的即。 PPI =(x ^ 2 + y ^ 2的平方根)/屏幕尺寸
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
// Display device width and height in pixels
screenHeightpx = dm.heightPixels;
screenWidthpx = dm.widthPixels;
答案 2 :(得分:-2)
为此你需要拍摄diaplaymatrix。
DisplayMetrics dm = getResources().getDisplayMetrics();
int height = dm.heightPixels;
int width = dm.widthPixels;