andriod分辨率适配
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像素(设计师都知道像素是什么)。 dpandriod 开发中用于描述模块间距等,(可以很好的自适应)240dpi 下,1dp1.5px 320dpi 下,1dp2px480dpi 下,1dp3px sp和 dp 一样,只是用于描述字体大小的单位。240dpi 下,1sp1.5px 320dpi 下,1sp2px480dpi 下,1sp3px3. 到底采用哪种分辨率来设计,到底需要提供多少套标注和切图。 1.只需要提供一套标注即可。原则上需要为不同分辨单独进行标注,但由于开发成本等各种考虑。选取 320dpi 下(分辨率为720*1280)进行设计,此分辨率下 1dp2px。另外视觉可以直接从高分辨率进行设计、标注、切图,这样可以方便适配低分辨率。 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 并不代表 480 x800 这个分辨率。dpi 是屏幕密度,同样的屏幕密度可以得到无数种分 辨率,只需要改变屏幕尺寸就可以了。如果不好理 解,拿刚出的 iPhone6 来讲,因为他的屏幕密度没变,虽然分辨率变成了 750 x1334,但是他和 iPhone5s 用的是同一套资源切图。 按照你提到的/1.5。320dpi 除 1.5 并不会得到 240dpi(他们其实是 0.75 倍的关 系)。用这种方 式得到的切图是不符合 Android 规范的。比如在 320dpi 下图标尺寸规范是 64x64。而在 240dpi 下图标尺寸规范是 48x48。他们换算关系 0.75 倍。 320dpi 我们用 720 x1280 这个分辨率来设计,如果想在 240dpi 上得到符合规范的切 图,就需要 将(720 x1280)x0.75。是的你会发现得到的是 540 x960。不是比较常见的 480 x800。但就像上面 提到的,谁说 240dpi 就是 480 x800 这个分辨率,他们只是在相同屏幕密度下共用一套资源切图而 已。 大家应该都用 ps 插件 cut and slice me 来切图吧,其实你细心发现,他也是用的这套逻辑。 1(mdpi)1.5hdpi2xhdpi3xxhdpi。我要讲的是,在 320dpi 下设计,想得到 240dpi 的切图。不能从 720 硬缩到 480 啊。 松猫 最近做 Android 适配要疯了。还是总结出了几点。 做设计的时候,如果并不打算 IOS 和 Android 的设计完全不一样,那么按照 IOS,640*1136 的分 辨率做设计。 做安卓适配可以直接调整图像大小到宽度 720,高度默认 1278 与安卓标准的 320dpi720*1280 差别并不大。标注时的 DP 转换也很方便,PX/2DP。 同时也做了两个版本的适配。 切图的时候使用插件进行输出,调整图像大小到宽度为 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。