相关概念
- 屏幕分辨率:屏幕分辨率就是手机屏幕的像素点数,指屏幕横竖各有多少个像素,一般描述成屏幕的“宽×高”。安卓手机屏幕常见的分辨率有 480×800、720×1280、1080×1920等,例如720×1280表示此屏幕在宽度方向有720个像素,在高度方向有1280个像素。
- 屏幕大小:屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸大屏手机”,就是指对角线的尺寸为5英寸,5寸×2.54厘米/寸=12.7厘米。(一英寸 = 2.54厘米)
- 屏幕密度:屏幕密度就是每英寸的像素点数,数值越高当然显示越细腻。对于屏幕来说,dpi越大,屏幕的精细度越高,屏幕看起来就越清楚。手机可以有相同的分辨率,但屏幕尺寸可以不相同。
- px:表示屏幕实际的象素。例如,320*480 的屏幕在横向有320个象素,在纵向有480 个象素。
- dp:一个基于density的抽象单位,随着密度变化,对应的像素数量也变化,但并没有直接的相对比例的变化。如果一个160dpi的屏幕,1dp=1px (在Android 距离主要使用dp作为单位 )
- sp : 字体主要使用sp作为单位
- in:表示英寸,是屏幕的物理尺寸。每英寸等于2.54 厘米。例如,形容手机屏幕大小,经常说,3.2(英)寸、3.5(英)寸、4(英)寸就是指这个单位。这些尺寸是屏幕的对角线长度。如果手机的屏幕是3.2 英寸,表示手机的屏幕(可视区域)对角线长度是3.2*2.54 = 8.128 厘米。读者可以去量一量自己的手机屏幕,看和实际的尺寸是否一致。
相关联系(上面概念之间的联系)
- 屏幕分辨率 和 屏幕大小 决定了 屏幕密度(dpi)并且屏幕的密度 和 屏幕的分辨率成正比、和屏幕的大小成反比;
- 屏幕密度(dpi) 决定了 px 和 dp 之间的比例关系 当屏幕密度为160时,1px = 1dp
AS 下的drawable文件夹
一般drawable文件夹下放入.9图片和我们创建的drawableXML资源文件,而工程中所用到的图片资源我们会根据不同手机的屏幕密度 放入对应的剩下的几个drawable文件夹下!对应关系如下:
dpi范围 | 密度 |
---|---|
0dpi ~ 120dpi | ldpi |
120dpi ~ 160dpi | mdpi |
160dpi ~ 240dpi | hdpi |
240dpi ~ 320dpi | xhdpi |
320dpi ~ 480dpi | xxhdpi |
480dpi ~ 640dpi | xxxhdpi |
如何获取手机密度:
** float xdpi = getResources().getDisplayMetrics().xdpi; **
** float ydpi = getResources().getDisplayMetrics().ydpi; **
简单案例
结论:
图片放入代表不同密度的drawable文件夹下,因为手机的屏幕大小是固定的从而使得手机分辨率发生变化,又因为手机密度是和屏幕分辨率成正比,所以图片展示在手机屏幕上的大小就会发生变化!