前言
今天无开发任务,闲着没事就看下书,看一章节觉得没爱了,接去官网逛了下,突觉还是官网写的比较人性化,翻译过来反而难懂了有木有。好吧,不要怀疑,本人英语是厉害了点,刚过四级,嘿嘿。其实还算勉强,在这里提供个大家看英文文档的小技巧。俗话说,擒贼先擒王,看文档先看目录,这句话一点也不假。就官网的技术文档来说,左边是大纲,
除此之外,在正文的右上角还有本章小目录。所以,急着看正文长篇大论不如先看下这个小目录,只有几句话就可以总结出本章打开内容,其实,这样就很有帮助看下面的文档了。其次,在看正文的过程中,难免会遇到比较生疏的词句,没关系,继续往下看,看完了就懂了,就算只看懂7成或8成也够了,大可不必纠结于单个词句而去浪费很多时间去查字典,这个过程虽然短暂,有时候却会导致你忘记前面看懂得内容,所以本人并不推荐这样去看英文文档, 除非你想学习单词- -。好,进入正题。
为什么要适配?
在Android系统中,机型非常多,屏幕尺寸的种类随之越来越多,一开始Google设计的几套屏幕尺寸标准,貌似大部分手机厂商并不愿意去遵循。故此,Google自己也提供了拓展性非常强的适配方案。
需要适配的通常有layout,drawable 。 而如果编写多套layout来适配不同的机型显然大部分程序员都不愿意去做。 从而往往倾向于drawable的适配来适应layout。那么本文就重点讲图片适配的集中方案。
一、使用多套dimen
这种方案相信很多人都在用,将ImageView的 width,height按照UI美眉给的设计稿填写确切的值,然后在dimen里按照mhdpi hdpi xhdpi xxhdpi的比例来计算每一个值来调整图片的大小。举个例子 UI给的设计稿尺寸标志位720*1280 那么这是属于xhdpi的范畴,那么 根据屏幕像素密度比 mhdpi:hdpi:xhdpi:xxhdpi = 1:1.5:2.0:2.5 。假设有一张设计稿上的图片大小为100*100 values-mhdpi、 values-hdpi、values-xhdpi、values-xxhdpi目录相对应对应下的dimen下设置为的值应该为 65*65 100*100 130*130 315*315 这样,在对应屏幕大小的手机上显示就正常了很多。虽然这种的精确度是非常高的。不过有没有人发现,单单一张图片就要做那么多工作了,一个应用程序员那么多图片,工作量也是不少了。 看项目来取舍吧,我还有第二种方案。
二、使用多个drawable资源
Google推荐的是这种, 将ImageView的width,height设置为wrap_content 或match_content 。然后 在不同的drawable文件下放入UI美眉给的不同大小的图片,简单粗暴。
三、使用.9patch 自动适配
支持各种屏幕尺寸通常意味着您的图片资源还必须能适应各种尺寸。例如,无论要应用到什么形状的按钮上,按钮背景都必须能适应。
如果在可以更改尺寸的组件上使用了简单的图片,您很快就会发现显示效果多少有些不太理想,因为系统会在运行时平均地拉伸或收缩您的图片。解决方法为使用自动拉伸位图,这是一种格式特殊的 PNG 文件,其中会指明可以拉伸以及不可以拉伸的区域。
.9的制作,实际上就是在原图片上添加1px的边界,然后按照我们的需求,把对应的位置设置成黑色线,系统就会根据我们的实际需求进行拉伸。
四、使用限制符个人认为,一些大公司或大项目才会采取这种方案。对于渣渣的我来说, 用不到,在这里先不做介绍了, 日后有需要再补充上来。有兴趣的同学飞: