Android 关于资源适配


一. 关于图片资源


图片宽高 不要固定大小,在小屏幕和大屏幕,不同分频率上 ,採用不同的图片,这个要美工切图的。


不同的分辨率,界面的长宽比不一致,须要不同规格的图片
在drawable-hdpi,drawable-ldpi,drawable-mdpi 中放不同分辨率的图片
注:为了减小整个应用程序安装包大小,选用最高分辨率适配,特殊界面图片特殊处理


二. 关于布局适配。


 Android手机屏幕大小不一,有480x320,640x360,800x480.如何才干让App自己主动适应不同的屏幕呢? 事实上非常easy,仅仅须要在res文件夹下创建不同的layout文件夹,比方:layout-640x360,layout-800x480,全部的layout文件在编译之后都会写入R.java里,而系统会依据屏幕的大小自己选择合适的layout进行使用。




1. 尽量不要使用绝对布局


2. 尽量使用match_parent,不要使用fill_parent,在布局中设置长度的时候,最好    使用Wrap-content,match-parent,文本要使用sp,像素要使用dip/dp。


      3. 可以使用权重的地方尽量使用权重(android:layout_weight)。

      4. 假设是纯色背景,尽量使用android的shape 自己定义

     5. 假设须要在特定分辨率下适配,能够在res文件夹上新建layout-HxW.xml的文件夹。

比方要适配1080*1800的屏幕(魅族MX3採用此分辨率)则新建layout- 1800x1080.xml的目录,然后在以下定义布局。Android系统会优先查找分辨率 同样的布局,假设不存在则换使用默认的layout下的布局。




不同分辨率,界面的字体大小,字体等须要不同的样式,且须要动态生成的情况下,
须要把不同分辨率的配置信息保存到应用中。
样例:
在RES里创建 values-480x320 values-800x400  value-1280x720
并在创建的目录中分别创建dimens.xml
<dimen name="Text_size">30px</dimen>
在程序中直接调用R.dimen.Text_size
int sizeOfText = (int) this.getResources().getDimension(R.dimen.Text_size); 
注:实际应用发现,字体大小适配时
比方仅仅适配了例如以下屏幕字体 
values-480x320 values-800x480  value-1280x720
当出现手机屏幕分辨率为 854x480时会自己主动找最大字体适配 (value-1280x720)
总结:假设字体800x480以上没有适配,手机自己主动按最大分辨率适配.





posted @ 2015-02-09 18:04  zfyouxi  阅读(266)  评论(0编辑  收藏  举报