Android屏幕适配之单位DP

论述

对开发而已,屏幕的大小就是以dp来看的。

因为现在UI设计上一般认为垂直方向是可以无限延长的(上下滚动),高是一定满足展示的,更多的我们要注意不同宽度的屏幕适配。

以手机为例,一般宽度介于320到411dp之间,布局必须能适应320到411dp之间的任何宽度,这就是开发要面对的适配问题。

给不同xxxxdpi的文件夹放对应的资源文件。

今日头条等3方库,效果看起来都不错,我理解是现在测试的例子是取了中间值360dp或375dp进行缩放,缩放比例不大的缘故。

一个用户头像大小是40dp*40dp,设计一般会给一个默认图,这个默认图的不同尺寸我们可以放在drawable-mdpi(40px*40px),drawable-xhdpi(60px*60px),drawable-xxhdpi(80px*80px)几个文件夹,这些尺寸和控件在不同dpi设备上展示实际像素大小是相同的。

现在设计一般出图的时候是以720px或750px或1080px作为原型大小宽的大小,这里已经默认用了Android的DP概念了(720px是750px是作为xhdpi,1080px是xxhdpi)

Android手机屏幕的大小基本介于320dp到411dp之间(平板不在此列);设计图也就那几种规格,换算过来720p和1080p的是360dp,750*1334是375dp。按照设计的内在逻辑去适配,使用DP也并不复杂,效果也是最佳的。虽然这里只说手机,但如果按照这样适配,就算是在平板上,显示效果也是可以的,而不是一个拉伸的界面。

实验

相同大小,不同分辨率的手机AB:

代号分辨率尺寸dpidp
手机A320x4803.6寸1601dp=1px
手机B640x9603.6寸3201dp=2px

假如AB都设置一个宽度为100dp的TextView:

代号TextView宽度手机宽度比例关系
手机A100px320px10/32
手机B200px640px10/32

 

得出结论:


对于相同尺寸的手机,即使分辨率不同,同DP的组件占用屏幕比例也相同。

 

dp的意义

  1. 同大小的手机,使用dp做出的UI效果一定相同。
  2. 不同大小的手机,使用dp做出的UI效果一定不同(这里不考虑weight等参数)。但只是组件相对于屏幕的大小比例有所缩放,组件自身的宽高比是不变的,即组件自身不会变形。


 


版权声明:本文为u010194271原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。