编程回忆之Android回忆(巧用dimens适配多个分辨率)
2014-03-17 11:45
260 查看
让应用自动适配多个分辨率的屏幕,是每个android程序员的基本功,就好像前端工程师熟练编写CSS Hack一样。适配工作中一个重要的工作就是对页面的调整。
对于页面的适配,有很多的方法和技巧。比如布局中尽量使用wrapcontent ,fillparent,尽量避免具体的数字,由系统来计算合适的宽高;或者为每个分辨率写一套布局文件,设置对应分辨率下控件的宽高;
为每一个分辨率写一套布局文件虽然够独立,够简单。但是维护起来成本较高。一个页面的改动,往往涉及多个布局文件的改动,让人很痛苦。
说的详细一点就是,xml布局中组件的宽高,不要使用具体的数值来表示,而是配置到dimension文件中。每套dimension文件中数值的大小都是成比例计算出来。
比如在1980*1080分辨率下,定义 px15表示15px
这套布局文件中的LinearLayout 在1980 * 1080 分辨率下的宽高为 150 x 15 , 在 1080 * 720分辨率下的宽高就会自动变成 100 * 10
其他分辨率同理
其实不然,对于dimension文件我们可以使用代码来控制生成,数值范围可以根据自己的情况来。其他分辨率下只需要按照相应比例,使用代码算一下即可。
编写一个这样的生成代码并不难,下篇文章我们再给出。
生成完毕后,Values 目录结构如下:
2. 按比例计算布局一定可靠吗,会不会出现混乱的现象
有可能会,这个时候就需要协调布局使用的宽高,选择合适的宽高让页面在各个分辨率下,看起来不算离谱就行,不一定严格按照设计来。大部分页面是兼容的。
原文链接:http://www.67tgb.com/?p=573
出处:望月听涛
对于页面的适配,有很多的方法和技巧。比如布局中尽量使用wrapcontent ,fillparent,尽量避免具体的数字,由系统来计算合适的宽高;或者为每个分辨率写一套布局文件,设置对应分辨率下控件的宽高;
为每一个分辨率写一套布局文件虽然够独立,够简单。但是维护起来成本较高。一个页面的改动,往往涉及多个布局文件的改动,让人很痛苦。
小技巧
我们可以尝试只写一套xml布局,然后为该布局准备多套dimension文件。说的详细一点就是,xml布局中组件的宽高,不要使用具体的数值来表示,而是配置到dimension文件中。每套dimension文件中数值的大小都是成比例计算出来。
比如在1980*1080分辨率下,定义 px15表示15px
<dimen name= "px15" >15px</ dimen>那么在 1080 * 720分辨率下,px15要成比例缩小1.5倍, 定义px15 表示 10px
<dimen name= "px15" >10px</ dimen>所以在xml布局文件中,我们可以这样来表示:
<LinearLayout android:layout_width="@dimen/px150" android:layout_height="@dimen/px15" android:orientation="vertical" > …… …… </LinearLayout>
这套布局文件中的LinearLayout 在1980 * 1080 分辨率下的宽高为 150 x 15 , 在 1080 * 720分辨率下的宽高就会自动变成 100 * 10
其他分辨率同理
疑问
1.有的同学会疑问,这样不就变成需要维护多套dimenson文件了?换汤不换药呀?其实不然,对于dimension文件我们可以使用代码来控制生成,数值范围可以根据自己的情况来。其他分辨率下只需要按照相应比例,使用代码算一下即可。
编写一个这样的生成代码并不难,下篇文章我们再给出。
生成完毕后,Values 目录结构如下:
2. 按比例计算布局一定可靠吗,会不会出现混乱的现象
有可能会,这个时候就需要协调布局使用的宽高,选择合适的宽高让页面在各个分辨率下,看起来不算离谱就行,不一定严格按照设计来。大部分页面是兼容的。
原文链接:http://www.67tgb.com/?p=573
出处:望月听涛
相关文章推荐
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
- Android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
- Android 适配不同分辨率 横屏竖屏
- Android 屏幕适配之dimens(上线项目中实际应用)
- 编程回忆之Android回忆(AnimationDrawable的使用)
- 详解android系统的适配(px,density,dpi,分辨率)
- Android分辨率适配
- android屏幕适配之dimens适配
- android分辨率屏幕适配
- 关于Android 奇葩分辨率相同屏幕密度下适配问题若干
- android 图片自适应,完美适配各分辨率手机
- Android常见分辨率的屏幕适配
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )屏幕适配
- android 分辨率适配与dip(dp)的使用
- android 分辨率适配与dip(dp)的使用
- 【原创】概述——android应用如进行屏幕尺寸和分辨率适配
- Android 适配不同分辨率&hdpi、mdpi、ldpi&横屏竖屏
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )屏幕适配
- android分辨率适配
- android适配不同分辨率的手机