首先要理解这些有几个概念必须清楚,
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等等。
下一篇来解决下具体代码中如何适配比较好。
本文介绍了Android开发中重要的概念,包括dp、px、ppi、手机尺寸以及资源目录ldpi、mdpi等。dp是设备独立像素,px是像素,ppi表示像素密度。理解这些概念有助于进行屏幕适配。例如,5英寸3:4屏幕的宽高分别为3英寸和4英寸,而px与dp的关系会受到设备像素密度的影响。Android根据像素密度定义了drawable资源目录,如drawable-ldpi、drawable-mdpi等。适配工作要考虑控件大小在不同设备上的表现,避免超出屏幕范围。
1万+

被折叠的 条评论
为什么被折叠?



