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英寸






郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。