资源描述
Andriod分辨率适配 ”葵花宝典“
1. 射鸡师 VS 攻城师
在日常的Andriod开发中经常会遇到各种各样的PK,其中设计师和工程师的矛盾非常突出,我们来看一下双方的主要矛盾。
主要原因是由于设计师和工程师都只专注于自己的领域,对彼此的领域了解较少。
2. 几个基本的概念
1.分辨率:屏幕上显示的像素个数,单位尺寸内像素点越多,显示的图像就越清楚。
市场上主流分辨率有:480*800、 720*1280、 1080*1920(其他的早该淘汰了,忽略不计)。
2.屏幕密度:表示屏幕每英寸有多少个像素。
240dpi(480*800) 、320dpi(720*1280)、480dpi(1080*1920)
3.单位:
px:像素(设计师都知道像素是什么)。
dp:andriod开发中用于描述模块间距等,(可以很好的自适应)
240dpi下,1dp=1.5px
320dpi下,1dp=2px
480dpi下,1dp=3px
sp:和dp一样,只是用于描述字体大小的单位。
240dpi下,1sp=1.5px
320dpi下,1sp=2px
480dpi下,1sp=3px
3. 到底采用哪种分辨率来设计,到底需要提供多少套标注和切图。
1.只需要提供一套标注即可。
原则上需要为不同分辨单独进行标注,但由于开发成本等各种考虑。
选取320dpi下(分辨率为:720*1280)进行设计,此分辨率下1dp=2px。
另外视觉可以直接从高分辨率进行设计、标注、切图,这样可以方便适配低分辨率。
2.只需要提供一套切图即可。
原则上设计师需要为不同分辨率单独标注切图,同样根据开发成本等要求。
1.一般采用720*1280的来设计。切图可以直接适配120*1280分辨率的机型。
2.720*1280下的切图资源基本可以适配其他机型,有些特殊的切图需要单独适配的,比如icon等。
3.适配480*800的机型,只需要把切图/1.5即可。
4.适配1080*1920机型,只需要把切图*1.5即可。
3.使用相对单位进行标注。
设计师要建立相对单位概念,可以直接使用dp标注尺寸、sp标注文字大小;
Andriod官网中就采用相对单位进行标注的。
4.采用自适应布局。
由于Andriod设备尺寸较多,设计师设计时要考虑好固定和自适应部分。
5.标注尽量采用相对关系。
Andriod设备尺寸很多,不可能采用绝对定位方式来标注,因为绝对定位无法实现界面元素自适应,标注时说明和兄弟元素、父子元素之间的关系即可。
4. 文字。
中文字体:默认为Droid Sans Fallback,设计时可采用微软雅黑。
英文字体:Andriod4.x及以上采用Roboto,Andrio2.x和andriod3.x采用 Droid Sans。
建议尽量采用系统默认字体。
Andriod规范建议,字号采用12sp、14sp、18sp、22sp等四个级别来设计。(实际设计时可以按实际情况调整,我经常这么干,嘿嘿)
5. 总结。
1.采用720*1280分辨率来进行设计。(设计时,采用偶数值进行设计,方便dp和px的转换)
2.开始标注了,标注尽量采用相对位置进行标注。
3.切图了,首先在720*1280下进行切图,可以完全适配720*1280的机型。切图资源
4.分别适配480*800 、1080*1920(上面已经描述过了哦)
5.不要忘记了,开发完后要进行bug测试哦(视觉方面的)
6.终于上线了,有自豪感了吧。
写的不足之处,还请见谅,希望各位大神来多多吐槽啊!!!!!
其它网友总结与分享:
vincent_lau :
有个算是明显的认知错误,dpi和分辨率并不划等号。240dpi并不代表480x800这个分辨率。dpi是屏幕密度,同样的屏幕密度可以得到无数种分 辨率,只需要改变屏幕尺寸就可以了。如果不好理解,拿刚出的iPhone6来讲,因为他的屏幕密度没变,虽然分辨率变成了750x1334,但是他和 iPhone5s用的是同一套资源切图。
按照你提到的/1.5。320dpi除1.5并不会得到240dpi(他们其实是0.75倍的关 系)。用这种方式得到的切图是不符合Android规范的。比如在320dpi下图标尺寸规范是64x64。而在240dpi下图标尺寸规范是 48x48。他们换算关系0.75倍。
320dpi我们用720x1280这个分辨率来设计,如果想在240dpi上得到符合规范的切 图,就需要将(720x1280)x0.75。是的你会发现得到的是540x960。不是比较常见的480x800。但就像上面提到的,谁说240dpi 就是480x800这个分辨率,他们只是在相同屏幕密度下共用一套资源切图而已。
大家应该都用ps 插件cut and slice me 来切图吧,其实你细心发现,他也是用的这套逻辑。1(mdpi):1.5(hdpi):2(xhdpi):3(xxhdpi)。
我要讲的是,在320dpi下设计,想得到240dpi的切图。不能从720硬缩到480啊。
松猫 :
最近做Android适配要疯了。还是总结出了几点。
做设计的时候,如果并不打算IOS和Android的设计完全不一样,那么按照IOS,640*1136的分辨率做设计。
做安卓适配可以直接调整图像大小到宽度720,高度默认1278与安卓标准的320dpi:720*1280差别并不大。标注时的DP转换也很方便,PX/2=DP。
同时也做了两个版本的适配。
切图的时候使用插件进行输出,调整图像大小到宽度为320,高度不用管,然后用插件直接可以等比输出mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi。开发人员再也不会说你只给一个图无法做多分辨率适配啦。
以上新手卓见,如果有大神有更好的意见求分享。。
vivameteor :
2.屏幕密度:表示屏幕每英寸有多少个像素。
240dpi(480*800) 、320dpi(720*1280)、480dpi(1080*1920)
此处有些问题。
屏幕密度(DPI)表示屏幕每英寸有多少像素,也就是说是由屏幕大小(英寸)与像素两者决定的。
那么,在不知道屏幕多大的情况下,怎么能够得出DPI呢?
480*800的屏幕DPI并不一定是240DPI,720*1280的屏幕不一定是320DPI,1080*1920的屏幕也不一定是480DPI。
展开阅读全文