android效果图换算⽐例,UI设计师给的px尺⼨单位,安卓如何
换算成dp?android11适配机型
很多UI⼯程师为了适配IOS,常常拿IOS⼿机作⽤参考模型,设计出来的UI稿只有PX标注的。他们也不懂Android的dp和sp单位是怎么回事。这个时候我们Android⼯程师如果不注意怎么转换的话,就可能开发出很难看的界⾯。
那么如何才能正确的将UI稿的上的px转换成android的dp单位呢?这个取决于UI设计师的设计稿基于什么设备。
⼀般安卓开发者只要适配⼀款主流设备,⽐如Nexues5,其它⼤部分⼿机都可以适配。如果要精确适配,就要针对不同分辨率进⾏单独适配。为了简单起见,我们只需要适配主流设备就可以了。
⾸先,我们要知道UI设计师的设计稿是基于什么设备设计的。知道了什么设备,这个设备的dpi也就知道了。那么px与dp之间换算就很简单:px=(dpi/160)dp
要注意的是这个公式中dpi并不是我们⾃⼰计算出来的(屏幕对⾓线的相像数除以对⾓线长度),⽽是⼿机⼚家ROM中设置
density(density=dpi/160),android通过java代码可以直接获取:
//以下是获取density,density=densityDpi/160
//以下是获取densityDpi,就是我们常说的dpi:像素密度
⽽实际情况下,设计师常常并没有针对安卓设备单独做⼀套设计稿,⽽是选择了iphone⼿机作为参考机型。他们以为适配了IOS就等于适配了安卓。标注尺⼨单位都是px。设计帅常常拿iphone6(s)或者是iphone6(s) plus作为参考机型,⼀个4.7⼨⼀个5.5⼨。⽐如是4.7英⼨的iphone6,它的分辨率是1334x750(dpi是326),⽽安卓设备最接近这个数值的分辨率是1280*720,对应这个分辨率的dpi⼀般是320,跟iphone 6(s)很接近,那么UI使⽤的iphone6(s)设计稿就对应安卓1280x720(dpi是320)的设备,所以我们就⽤320这个dpi进⾏换算。再⽐如是5.5英⼨的iphone6 plus,它的分辨率是1920x1080(dpi是480),⽽安卓设备刚好也有很多同等的分辨率,对应这个分辨率的dpi⼀般是480,⽽iphone6 plus的dpi也是480,所以我们⽤480的dpi进⾏换算。
举个例⼦,设计师基于iphone6的设计稿标注20px,换算成dp就是20x/(320/160)=20/2=10。也就是除以2得到dp。如果设计师基于iphone6 plus的设计稿标注120px,那么dp就是120x/(480/160)=30/3=40。也就是除以3得到dp。
⼀般我们看UI稿的尺⼨就可以推测出它的参考机型,⽐如UI稿的尺⼨是1334x750,那肯定是iphone6(s)⼀类的机型,或者是
1920x1080,那就是iphone6(s) plus⼀类的机型。如果UI稿的尺⼨匹配不到⼀款主流的机型,那就是UI设计师不合格啦!
还有⼀种⽅法,程序员不需换算,UI设计师可以直接在设计⼯具中将px单位转换成dp单位,标注图上显⽰的就是dp单位,⽐如PxCook这个⼯具已经⽀持这个功能。
以上是⼀般性的适配⽅法,如果⼚商⽣产的⼿机很奇葩,⽐如1280*720的分辨率dpi不是320,⽽是相差很⼤,⽐如是400,那么Android开发者就需要进⾏单独适配了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论