从设计图到代码的尺寸转换

以 figma 为例谈 android app 的设计

Android app 开发的第一步是构想设计,作为设计师,自然不能天马行空自由发挥,android的设计有一定的标准和规范,最基础的问题比如:手机屏幕的设计应基于多大的尺寸?

在 figma 上,android 的设计默认以 dp 为单位,矢量图导出再导入 android studio 的单位是 dp,自然,屏幕大小的单位也是 dp 。
经过一番搜索可知,目前市面上流行的手机屏幕尺寸多是 360dp*640dp ,问题得到了解决,这就是设计图应该依照的屏幕尺寸。

dp 和 px 的浅易理解

知其然更应知其所以然。

市面上手机屏幕不是有各种不同的大小吗?为何大多都是 360dp*640dp 呢?
这就涉及到dp和px的区别了。

px我们很熟悉,网页设计中经常使用,简单来说就是像素数目,这是因为各种显示屏的显示单位可以看作一个个像素点。
谈dp之前先要介绍一下dpi,dpi 指的是每英寸内的像素点数,这个数值一般由手机厂家提供,可以看作像素密度。

因为不同手机像素密度 dpi 不同,假如用px作为尺寸单位的话,不能保持尺寸比例的一致,dp 应运而生。
dp, px, dpi 之间的运算关系是:px = dp * ( dpi/160 )
直观上理解,1dp 即等于 160dpi 的手机上的1px。

这样,虽然各种不同的手机长宽的px不一样,因为dpi也不同的原因,转换一下大部分都还是 360dp*640dp 尺寸的。

不完美的适配

虽然以 dp 为单位能适配大部分机型,可是对于尺寸不是 360dp✖️640dp 的手机,以 360dp✖️640dp 为基准的设计图是不能做到完美适配的。

想做到完美适配也不是不可以,一种方案是动态改变手机的 dpi,使得计算的时候屏幕宽度等于设计图宽度(以dp为单位)【原理我暂时不清楚】,还有一种方案是针对每一种分辨率的屏幕准备一套配置文件。
参考:https://www.imooc.com/article/320267

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值