1、术语表格及计算
2、DPI的计算(已在对应表格中给出,不再重复介绍)
3、密度的计算(已在对应表格中给出,不再重复介绍)
4、物理尺寸的计算:
从DPI对应表格已经知道屏幕物理尺寸的获取公式为:
屏幕物理尺寸 = Math.sqrt(Math.pow(宽,2)+Math.pow(高, 2))/DPI
对应代码实现:
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
// 屏幕宽度(像素)
int width = metric.widthPixels;
// 屏幕高度(像素)
int height = metric.heightPixels;
// 屏幕密度(0.75 / 1.0 / 1.5)
float density = metric.density;
// 屏幕密度DPI(120 / 160 / 240)
int densityDpi = metric.densityDpi;
//
double diagonalPixels = Math.sqrt(Math.pow(width, 2)+ Math.pow(height, 2));
double screenInches = diagonalPixels / densityDpi;
//
Log.d(TAG, "screen inches : " + screenInches);
5、证明:google定义,一英寸=160dip
//
假设:一英寸=160dip(试验设备红米手机)
红米手机屏幕的宽(英寸) = (1280/320) = 4英寸
红米手机屏幕的高(英寸) = (720/320) = 2.25英寸
//
红米手机屏幕的宽(dip) = 4*160dip=640dip
红米手机屏幕的高(dip) = 2.25*160dip =360dip
//
以下是红米手机的截图,图中按钮的宽高如下:
按钮的宽为:320dip
按钮的高为:180dip
可以看出,该按钮的宽、高各占屏幕尺寸的一半,所以假设成立。