博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android设备单位概念总结
阅读量:6514 次
发布时间:2019-06-24

本文共 2057 字,大约阅读时间需要 6 分钟。

  hot3.png

一、分辨率

分辨率就是屏幕上显示的像素个数,分辨率160×128的意思是水平方向含有像素数为160个,垂直方向像素数128个。屏幕尺寸一样的情况下,分辨率越高,显示效果就越精细和细腻。

二、屏幕尺寸

设备的物理屏幕尺寸。所谓屏幕尺寸指的是屏幕对角线的长度,单位是英寸。

然而不同的屏幕尺寸是可以采用相同的分辨率的,而它们之间的区别在与密度(density)不同。

 

三、屏幕密度

屏幕密度与DPI这个概念紧密相连,DPI全拼是dots-per-inch,即每英寸的点数。也就是说,密度越大,每英寸内容纳的点数就越多。( (每英寸所能打印的点数,即打印精度) 

android.util包下有个DisplayMetrics类可以获得密度相关的信息。

最重要的是densityDpi这个成员,它有如下几个常用值:

  1. DENSITY_LOW = 120  

  2. DENSITY_MEDIUM = 160  //默认值  

  3. DENSITY_TV = 213      //TV专用  

  4. DENSITY_HIGH = 240  

  5. DENSITY_XHIGH = 320  

  6. DENSITY_400 = 400  

  7. DENSITY_XXHIGH = 480  

  8. DENSITY_XXXHIGH = 640

Android主要有以下几种屏:如下表     

Tyep

宽度

Pixels

高度

Pixels

尺寸

Range(inches)

屏幕密度

QVGA

240

320

2.6-3.0

low

WQVGA

240

400

3.2-3.5

low

FWQVGA 

240

432

3.5-3.8

low

HVGA 

320

480

3.0-3.5

Medium

WVGA 

480

800

3.3-4.0

High

FWVGA

480

854

3.5-4.0

High

WVGA

480

800

4.8-5.5

Medium

FWVGA 

480

854

5.0-5.8

Medium

备注

目前android默认的low=120 ;Medium =160; High = 240

apk的资源包中

当屏幕density=240时,使用hdpi 标签的资源

当屏幕density=160时,使用mdpi标签的资源

当屏幕density=120时,使用ldpi标签的资源。

不加任何标签的资源是各种分辨率情况下共用的。

布局时尽量使用单位dip,少使用px

 

 

四、px

屏幕上的点,不同设备不同的显示屏显示效果相同,这是绝对像素,是多少就永远是多少不会改变。

五、dip/dp

DIP是Density Independent Pixel,直译为密度无关的像素:设备独立像素.

一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp =1px。

 

dp与px换算公式:

pixs=dips * (densityDpi/160)

dips=(pixs*160)/densityDpi

 

 

针对dip和px 的关系,做以下概述:

QVGA屏density=120                       QVGA(240px*320px)

HVGA屏density=160                        HVGA(320px*480px)

WVGA屏density=240                      WVGA(480px*800px)

WQVGA屏density=120                    WQVGA(240px*400px)

density值表示每英寸有多少个显示点,与分辨率是两个概念。

 

 

官方推荐使用dp是因为它会根据你设备的密度算出对应的像素。

公式为:pixel = dip*density

 

 

dp与px转换的方法:

    public static int dipToPx(Contextcontext, float dipValue) {

       final float scale =context.getResources().getDisplayMetrics().density;

       return (int) (dipValue * scale+ 0.5f);

    }

 

    public static int pxToDip(Contextcontext, float pxValue) {

       final float scale =context.getResources().getDisplayMetrics().density;

       return (int) (pxValue / scale+ 0.5f);

    }

 

 

六、PPI

Pixels per inch,每英寸的像素数(也被称为图像的采样率)屏幕X/Y轴上真正的物理PPI。

因此PPI数值越高,即代表显示屏能够以越高的密度显示图像。当然,显示的密度越高,拟真度就越高。

七、sp

scaled pixels — bestfor text size,放大像素,与刻度无关的像素:主要处理字体的大小。

根据google的推荐,像素统一使用dip,字体统一使用sp

 

 

 

 

转载于:https://my.oschina.net/fltsp/blog/659271

你可能感兴趣的文章
CNN网络--AlexNet
查看>>
getopt--parse command line options
查看>>
闭包和OC的block的本质
查看>>
每天一个linux命令(34):du 命令
查看>>
SpringBoot配置属性之MVC
查看>>
MySQL出现Waiting for table metadata lock的场景浅析
查看>>
两个PDF同时在Mac上阅读是一种什么样的体验
查看>>
C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新)
查看>>
Hadoop(一)之初识大数据与Hadoop
查看>>
什么是数据埋点?
查看>>
git回滚
查看>>
vue2.0 引用qrcode.js实现获取改变二维码的样式
查看>>
Python 判断闰年,判断日期是当前年的第几天
查看>>
activiti 清库脚本(转)
查看>>
如何快速查看服务器配置信息?
查看>>
caffe blob理解
查看>>
特殊字符校验
查看>>
Centos6下zookeeper集群部署记录
查看>>
红楼梦人物关系
查看>>
php:微信公众平台上传多媒体接口 41005错误
查看>>