理解dp,px和手机尺寸

本文介绍了Android开发中重要的概念,包括dp、px、ppi、手机尺寸以及资源目录ldpi、mdpi等。dp是设备独立像素,px是像素,ppi表示像素密度。理解这些概念有助于进行屏幕适配。例如,5英寸3:4屏幕的宽高分别为3英寸和4英寸,而px与dp的关系会受到设备像素密度的影响。Android根据像素密度定义了drawable资源目录,如drawable-ldpi、drawable-mdpi等。适配工作要考虑控件大小在不同设备上的表现,避免超出屏幕范围。

首先要理解这些有几个概念必须清楚,

dp, px,ppi,手机尺寸,以及作为Android 开发必须放到的图片目录的含义ldpi,mdpi,hdpi,xhdpi,xxhdpi.

我们一个个来介绍,

1.手机尺寸。这个指的是手机的物理尺寸,比如苹果4S的3.5英寸,5S的4英寸,还有很多,我们可以打开我们AVDmanager.里面有很多列表供我们生成模拟器尺寸。注意,这个手机尺寸是指屏幕的对角线尺寸,市面上百分之90的手机都是9:16的,即宽高比,按照勾股定理。3:4:5,所以我们可以推断出一个5英寸的屏幕宽是3英寸,高是4英寸.这个对于下面很重要。


2.dp: 设备独立像素,这个是相对的,在不同的手机上展示的大小是不同的。

3.px:像素,这个很好理解,就是我们买手机时不时有多少像素的相机的概念吗,这个是绝对的,比如一个100px的图片在高分辨率手机下就显示的比较小,在低分辨率下就比较大,但实际大小他们是一样的。一般不建议直接使用px,即使代码里的自定义控件的单位是px,也最好自己去实现换算,这样才能对广大手机做适配。

3.ppi 又叫像素密度,其实也应该叫做dpi吧(估计有区别,我们还是说dpi),注意:该值对应于DisplayMetrics类中属性densityDpi的值。其实就是手机每一英寸上有多少个像素,列如如上5英寸的屏幕宽3英寸,如果DPI是160的话,它的宽实际上就只有,3*160个像素。高则是4*160,我们买手机不能看它的物理尺寸,而是要看这个PPI,PPI越高说明密度越高,屏幕就越清晰。

4.根据手机的DPI的大小,我们又可以判断android图片目录的关系,Android根据像素密度的大小,定义了4个类别,可能现在是5个 ,

120DPI   低   drawable-ldpi

160DPI  中    drawable-mdpi

240DPI  高    drawable-hdpi

320DPI  超高,drawable-xhdpi

当然还有更高的,比如500+左右的DPI。比如5英寸,2000*1000左右的分辨率,毛咕咕就有400-500,今后也是一种趋势。对应的图片目录是drawable-xxhdpi.

像素密度的的关系是0.75:1:1.5:2,所以作图的就需要分辨提供75px,100px,150px,200px像素比的图片。当然有可能UI只提供了一套,开发就要根据比例换算。


5.dp和px 的关系,一般而言,100dp在像素密度为0.75的手机上就是75px,在2的手机上是200px.这个关系就保证了,同样dp大小的控件在不同手机上的像素一样,看起来大小也一样。


6.还有一种情况就是我们写某个控件比较大时,比如500dp,其实还需要考虑当前屏幕的宽或者高够不,500*0.75,即使最低的像素密度,这个也是需要400左右的px,如果还有其他的控件,这个宽度肯定会超一些480*320的手机,所以为了避免这个,必须做必要的处理。比如给布局设置边距,或者实时根据手机的dpi来计算宽高,用weight等等。

下一篇来解决下具体代码中如何适配比较好。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值