设计师给的布局和字体尺寸单位为px,在写代码的时候要如何转换成Android用的dp和sp ?
问题如题描述,设计给的尺寸都是px的,而且也不告诉他们在什么尺寸和分辨率的屏幕上做的设计?作为程序员要如何转换单位?
我不是在问px与dp之间如何转换的问题。而是由设计师的px如何转换成写在xml里的dp的问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
遇到题主这种情况, 你只能告诉你们美工(这里不能叫他们为设计师): 这做不了!!!
但凡设计App UI, 都是要在一个主流的标准分辨率下来设计的, 然后你才能找到对应的屏幕密度, 最后才能进行px到dpi的转换.
如果脱离这个原则, 那就是耍流氓, 最后你实现出来失了真, 和UI设计稿相去甚远, 那都不是你的事.
参考资料:
Device Metrics
运算方法:
知道了设计稿的分辨率, 以及该分辨率一般对应的屏幕密度后, 按如下公式计算:
p.s. density 即为 Device Metrics 中对应Density一列的值
p.p.s. 答主不要在看这个热血的回复之后, 就热血地和你们美工去撕逼了呀, 有事还是要好好说的呢 [捂脸] [认怂] 2333
首先要知道设计图里面的屏幕尺寸是多少
一般都是1080x1980(?或者其他), 通常都属于xxhdpi, 也就是1dp相当于3px
如果设计图屏幕宽只有480(或者左右), 那么1dp应该就是1px了
1dp=(屏幕ppi/ 160)px
原文链接
public static float px2dp(Context context, float pxVal)
转换方法: px ---> dp