巧用dimens适配多个分辨率(一)
来源:互联网 发布:mac玩英雄联盟国服 编辑:程序博客网 时间:2024/05/21 15:46
让应用自动适配多个分辨率的屏幕,是每个android程序员的基本功,就好像前端工程师熟练编写CSS Hack一样。适配工作中一个重要的工作就是对页面的调整。
对于页面的适配,有很多的方法和技巧。比如布局中尽量使用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. 按比例计算布局一定可靠吗,会不会出现混乱的现象
有可能会,这个时候就需要协调布局使用的宽高,选择合适的宽高让页面在各个分辨率下,看起来不算离谱就行,不一定严格按照设计来。大部分页面是兼容的。
下一篇文章,我们给出自动生成这些dimension文件的代码。
原文链接:http://www.67tgb.com/?p=573
转载注明出处:望月听涛
- 巧用dimens适配多个分辨率(一)
- 巧用dimens适配多个分辨率
- 巧用dimens适配多个分辨率
- 巧用dimens适配多个分辨率
- 巧用dimens适配多个分辨率
- 巧用dimens适配多个分辨率
- 巧用dimens适配多个分辨率
- 巧用dimens适配多个分辨率
- 巧用dimens适配多个分辨率
- 巧用dimens适配多个分辨率
- 巧用dimens适配多个分辨率
- 巧用dimens适配多个分辨率
- 巧用dimens适配多个分辨率(二)
- 巧用dimens适配多个分辨率2
- 编程回忆之Android回忆(巧用dimens适配多个分辨率)
- dimens 适配多个分辨率
- 屏幕适配多个dimens
- dimens
- 网站域名的相关知识
- 通过 ulimit 改善系统性能
- KMP模式匹配 串2
- cisco3560交换机的策略路由的设置
- 破解DLL时间限制
- 巧用dimens适配多个分辨率(一)
- 阻抗相关
- Android WebView的加载超时处理
- linux下多线程使用
- IGraphicsContainer添加圆形元素
- Android4.x 如何处理Power按键
- 反向Ajax,第2部分:WebSocket
- 锤子Fan | ChuiZiFan.com今天正式上线
- linux下php扩展mysqli的支持