您的位置:首页 > 移动开发 > Android开发

android简单可操作的屏幕适配

2015-08-09 10:47 357 查看
首先,你得明白px、dp是不同的,在布局时尽量使用dp和sp。然后你就可以依据下面的方法来进行屏幕的适配了。

1.可用的修饰符

屏幕适配的基本思路是可以通过不同的修饰符来修饰资源文件,从而为设备提供多套可选的资源。实际设备通过一定的策略选择最合适自己的资源,从而达到最好的展示效果。

可用的修饰符如下表:



注意:(1)匹配的时候是基于表中修饰符的先后顺序进行匹配的,而不是匹配实际匹配项最多的那个。

(2)尺寸匹配时匹配的是实际可用宽高,单位为dp。

(3)sw<N>dp的含义是最小宽度,这个最小宽度是设备本身的属性,取横竖屏下可用宽度的最小值。

h<N>dp、w<N>dp表示的是实际高度,在横竖屏下可能不同。

sw<N>dp,h<N>dp,w<N>dp的适配策略相同。都是用最接近于实际尺寸但又不超过实际尺寸的资源来匹配。

(4)经实测,h<N>dp优先匹配于w<N>dp,与上表的顺序略有不同,猜测可能是官网的笔误(上表来自官网,文末有官网链接)。

2.android 选择最佳匹配资源的策略

关键点是按修饰符的优先级一项项的匹配,实际的策略如下图:



选取策略中的注意点:

(1)在步骤1中,屏幕的像素密度不会因为冲突而被剔除(如实际设备的像素密度为hdp,而资源的像素的密度为ldp时)。

(2)在步骤4中,如果针对的修饰符是像素密度,安卓会选择最接近的像素密度来匹配。通常,安卓倾向于把一个大尺寸的图片缩小而不是把一个小图片放大。

另:如果筛选不到最佳匹配的资源,设备会选择默认的资源目录(如果此时没有默认资源目录可用,则程序报错)。

3.如果我们能够知道实际设备的可用尺寸,就可以根据具体设备的dp值进行匹配了。

我们知道dp是一个逻辑像素,但为什么还要对不同的屏幕尺寸进行匹配呢?实际原因是每个各个设备基于的逻辑尺寸大小并不都一样,比如设备A的逻辑像素宽为360dp,设备B的逻辑像素宽度为320dp,那么你设置一个按钮的宽度的180dp。此时在设备A中按钮的宽度为屏幕宽度的一半,在B中的宽度则多于一半,显示效果明显不同。

关于具体的计算尺寸大小详见附件。

下载链接: http://download.csdn.net/detail/yw2015/8980085
参考文档:http://developer.android.com/guide/topics/resources/providing-resources.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: