屏幕分类:
(android1.6以上) Xlarge(至少960dp*720dp)、large(至少640dp*480dp)、normall(至少470dp*320dp)、small(至少426dp*320dp)
android3.2以后以上定义被废弃,取而代之采用的是:xhdpi、hdpi、mdpi、ldpi四种。
配置策略:
1、在manifest文件中包含<supports-screens>元素
2、为不同的屏幕尺寸提供不同的布局
3、为不同的屏幕尺寸提供不同的drawable资源 :
1)如果没有找到默认使用/drawable/下的资源
2)如果还是没有找到所需资源,则向上一级密度drawable中寻找资源
3)如果上一级密度drawable中没有资源,则向下寻找。
eg:
step1:mainifest中添加
<supports-screens android:resizeable=["true"|"false"]
android:smallScreens=["true"|"false"] //是否支持小屏
android:normalScreens=["true"|"false"] //是否支持中屏
...
android:anyDensity=["true"|"false"]//是否支持多种不同密度屏幕 ,其值一般设为true,否则将不能自动适配资源
android:requiresSmallestWidthDp="integer"
android:compatibleWidthLimitDp="integer"
android:largestWidthLimitDp="integer"/>
step2:对不同大小的屏幕提供不同的布局文件:
res/layout/main.xml //标准屏幕、默认布局
res/layout-small/main.xml //小屏幕
res/layout-large/main.xml //大屏幕
res/layout-xlarge/main.xml //超大屏幕
res/layout-xlarge-land/main.xml //超大屏幕并且横屏
step3:对不同密度的屏幕提供不同的图片:
res/drawable-mdpi/icon.png
res/drawable-hdpi/icon.png
res/drawable-xdpi/icon.png
技巧:多使用“wrap_content”和“match_parent” 、以及Nine-Path位图、使用相对布局,不使用绝对布局