首页 > 代码库 > Android屏幕适配方案

Android屏幕适配方案

文章转载禁止用于商业用途,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处莫高雷草原以及作者@JiongBull。


Android屏幕适配方案


统计分析

1. 2014Q1活跃Android设备统计

参数表格:

机型分辨率像素密度屏幕宽度
三星Galaxy Note2720 * 1280xhdpi360dp
三星Galaxy S3720 * 1280xhdpi360dp
小米手机2S720 * 1280xhdpi360dp
三星Galaxy S41080 * 1920xxhdpi360dp
三星Galaxy S2480 * 800hdpi320dp
三星Galaxy Note800 * 1280xhdpi400dp
三星Galaxy Note31080 * 1920xxhdpi360dp
红米手机720 * 1280xhdpi360dp
小米手机1S720 * 1280xhdpi360dp
三星Galaxy Ace480 * 800hdpi320dp
小米手机M2720 * 1280xhdpi360dp
小米手机M31080 * 1920xxhdpi360dp
小米手机M1480 * 854hdpi320dp
小米手机2A720 * 1280xhdpi360dp
三星GT-S7568480 * 800hdpi320dp
华为G520480 * 854hdpi320dp
三星Galaxy Mega 5.8540 * 960hdpi360dp
三星GT-S7562480 * 800hdpi320dp
OPPO R821t480 * 800hdpi320dp
华为C8815540 * 960hdpi360dp

结论:绝大部分机型的屏幕宽度是320dp和360dp。

2. 2014Android操作系统趋势

结论:4.0版本以上的操作系统占据了90%以上的市场份额。


方案

1. 声明客户端支持的最小操作系统版本

  • 过滤掉老旧版本操作系统,帮助我们减少针对时机型适配带来的工作量
  • 可以使用Android 3.2(API等级13)版本提供的新特征利用屏幕的宽度对不同的屏幕做适配

<uses-sdk android:minSdkVersion="15"/>

2. 声明屏幕方向为竖屏

避免用户横屏时页面布局错乱。

android:screenOrientation="portrait"

3. 布局

针对手机设备,使用一套布局资源,布局中里用到的尺寸、颜色、文本等资源使用引用值。

res/layout/name.xml

4. 尺寸

参考统计分析里的参数表格,values-w320dp目录内属性适配屏幕宽度为320dp的机型,values-w360dp目录内的属性适配屏幕宽度为360dp的机型。

res/values-w320dp/dimens.xml
res/values-w360dp/dimens.xml

5. 图片

  • 如果可以避免使用位图那就不要使用位图,这样可以节省空间资源,提高应用的性能
  • 可以使用XML绘图代替位图,比如圆角矩形,使用XML绘制的色图比位图节省空间资源,而且可以自动适配
  • 使用9-patch,9-patch可以缩放,我们可以使用很小的9-patch填充很大的UI控件,节省空间资源,提高应用的性能
  • 尽量减少XML的布局层次,减少布局层次可以减少系统解析代码所做的工作,让界面的渲染速度变快
  • 使用merge而不是include,使用merge可以达到减少布局层次的效果
  • 尽量使用RelativeLayout,使用RelativeLayout相比使用多个LinearLayout来说可以减少布局的层次
  • 每种切图都需要下面表格中的展示的三种规格
像素密度系数Logo分辨率
hdpi1.572 * 72
xhdpi2.096 * 96
xxhdpi3.0144 * 144

Android屏幕适配方案