您的位置:首页 > 移动开发 > Android开发

编程回忆之Android回忆(巧用dimens适配多个分辨率)

2014-03-17 11:45 260 查看
让应用自动适配多个分辨率的屏幕,是每个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. 按比例计算布局一定可靠吗,会不会出现混乱的现象

     有可能会,这个时候就需要协调布局使用的宽高,选择合适的宽高让页面在各个分辨率下,看起来不算离谱就行,不一定严格按照设计来。大部分页面是兼容的。

    原文链接:http://www.67tgb.com/?p=573

    出处:望月听涛

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 布局 设计 xml