01.27 Android屏幕适配解决方案

一、支持各种屏幕尺寸

1、使用wrap_content、match_parent、weight

Weight计算出的宽度= 控件原来宽度+剩余空间所占百分比的宽度

假设屏幕宽度为 L

Button1 2/3L = L +(L-2L)*1/3 = L-1/3L=2/3L

Button2 1/3L = L+(L-2L)*2/3 = L-2/3L= 1/3L

Android屏幕适配解决方案

效果

假设两个 button width 等于0dp,则Button1 1/3L = 0 +L*1/3 = 1/3L ;Button2 = 2/3L = 0 +L*2/3 = 2/3L

2、使用相对布局,禁用绝对布局

3、使用限定符

尺寸限定符(android 3.2及之前),如res/layout-large/main.xml,res/layout/main.xml。

最小宽度限定符(android 3.2之后),res/layout-sw600dp/main.xml,res/layout/main.xml。

方向限定符,res/values-sw600dp-port/layouts.xml,res/values-sw600dp-land/layouts.xml

4、使用自动拉伸位图,可以根据控件大小自动拉伸

左上:拉伸区域;右下:间隔区域

Android屏幕适配解决方案

拉伸位图

Android屏幕适配解决方案

效果图

二、支持各种屏幕密度

1、使用密度非制约像素 ,解决宽度不一致问题

Android屏幕适配解决方案

不同屏幕尺寸下的像素定义

2、提供备用位图,否则会造成内存占用问题:图片如分辨率不匹配会造成内存猛增

Android屏幕适配解决方案

针对不同dpi提供位图

三、实施自适应用户界面流程

1、确定当前布局

2、根据当前布局做出响应

3、重复使用其他活动中的片段

4、处理屏幕配置变化

四、最佳实践

1、针对不同屏幕尺寸设计高清图片

2、代码动态设置尺寸


分享到:


相關文章: