首页 > 代码库 > Android适屏
Android适屏
总结一下自己的适屏经验,肯定有很多不足,这和能力有关,只希望自己不断进步,不断完善,如果有热心肠的“前辈”指导一下,不胜感激!
Android5.0已经出来了,说是这个版本对Android屏幕适配做了很多工作,不过对于我这种慢性子的人,我还是耐心的拭目以待吧,5.0之前已经有很多分辨率,刚开始做Android的时候头都大了,不过慢慢的还是积累了一些适屏的经验,在此总结一下。
一、使用资源标识
1.分辨率(密度)标识符适配
Android的分辨率有四大类,以后还会不会更多呢,我也不知道,不过话说分辨到达一定阈值后人眼就不能分辨了吧,毕竟在手机这么小的屏幕之上,再细致也就不值得了
低分辨率:lhdp(120dp)
普通分辨率:mdp(160dp)
高分辨率:hdp(240dp)
超高分辨率:xhdp(320dp)
超级高分辨率:xxhdp(480dp) 这是API Lev 16之后才有的超级分辨率
分辨率的不同主要影响Android手机上图片的显示,如果是一些颜色或者矢量背景就没有影响,比如直接用color或者定义xml类型的drawable做视图的背景时,结合布局时的一些技巧就不会受分辨率的影响了。抽空再总结,话说回来,用上面的资源标识符为图片提供多种尺寸的方法如下:
将资源标识符用短横线连接到res/drawable之后,例如:
res/drawable-lhdp/:正常图片尺寸的75%
res/drawable-hdp/:正常图片尺寸的100%
res/drawable-hhdp/:正常图片尺寸的150%
res/drawable-xhdp/:正常图片尺寸的200%
res/drawable-xhdp/:正常图片尺寸的300%
就像应用程序的启动图片,也应该设置多个分辨率类型,将36*36(像素),48*48(像素),72*72(像素),96*96(像素),144*144(像素)的icon分别放在以上对应的项目文件目录下即可实现不同分辨率下,显示相对应的图片。
2.尺寸资源标识符适配
small:426*320(dp)
normal:470*320(dp)
large:640*480(dp)
xlarge:960*720(dp)
有xxlarge:吗?
3.平台标识符限定
v4
v9
v11
v14
...
4.横竖屏标识符限定
land
5.精确限定
w<N>dp:精确限定宽度分辨率
h<N>dp:精确限定高度分辨率
sw<N>dp:表示这个layout文件夹下面的布局文件只有在设备短边的最小宽带为N时才加载。你的设备是800x480的分辨率,那么这个apk安装在你的设备上就会加载 layout-sw480dp里面的布局文件。
上面的标识符通常用在res文件目录下的drawable,layout和values,例如:layout-550dp-large;drawable-large-mdpi;values-1134*720(大数在前小数在后)
还有就是在AndroidManifest.xml中加上
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"/>
除了上面的资源标识符限定之外,如果想要更加精确的设置,可以利用values下的dimen,对于要求不是很严格的,可以结合Relativeyout,LinearLayout,还有容易被忽视的FrameLayout,设置视图的宽高(android:layout_width="" android:layout_height="")时使用match或者wrap,之后再设置layout_margin=""或者padding=""属性来控制距离。
二、Android支持的单位
1.单位
px:像素
in:英寸
mm:毫米
pt:磅(1/72)英寸
dp:与px无关的像素
dip:就是dp
sp:与刻度无关的像素,与dp类似,可根据用户字体大小的首选项缩放
2.单位换算
在标准分辨率(160dp)下:
1dp = 1dip = 1px
1pt = 160/72sp
1pt = 1/72英寸
Android适屏