Android的DPI、密度、物理尺寸的计算

来源:互联网 发布:易语言http服务器源码 编辑:程序博客网 时间:2024/05/29 23:22

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

可以看出,该按钮的宽、高各占屏幕尺寸的一半,所以假设成立。
这里写图片描述

阅读全文
0 0