注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

倚天剑

青春要在奔跑中度过

 
 
 

日志

 
 
 
 

Android 中的dp和px  

2013-08-13 23:35:17|  分类: 开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 首先,有这么一堆公式:
px=dp*(dpi/160)
dpi=px/in

上面两个公式推导出:
每inch中有固定的160dp
也就是dp实际上是一个物理长度单位,即1dp=inch/160

dp 这个单位是安卓发明的么?为什么 px=dp*(dpi/160)?

问:
在Xdpi下绘制Xpx长度,实际的物理距离都是1英寸,为什么一定要选160呢?
如果设定宽高为厘米,或者英寸之类的物理单位,屏幕根据dpi的大小来计算要显示多少像素才能达到这个物理单位,不是更好?为什么要引入dp?
答:
作为一个经常拿着计算器算长宽,然后给 Android 应用各个分辨率提供界面切图的死美工,我想尝试回答一下后半个问题,也就是为啥以 160 dpi 作为基准:

Android Design [1] 里把主流设备的 dpi 归成了四个档次,120 dpi、160 dpi、240 dpi、320 dpiAndroid 中的dp和px - 倚天剑 - 锋芒毕露倚天剑
实际开发当中,我们经常需要对这几个尺寸进行相互转换(比如先在某个分辨率下完成设计,然后缩放到其他尺寸微调后输出),一般按照 dpi 之间的比例即 2:1.5:1:0.75 来给界面中的元素来进行尺寸定义。

也就是说如果以 160 dpi 作为基准的话,只要尺寸的 DP 是 4 的公倍数,XHDPI 下乘以 2,HDPI 下乘以 1.5,LDPI 下乘以 0.75 即可满足所有尺寸下都是整数 pixel 。

但假设以 240 dpi 作为标准,那需要 DP 是 3 的公倍数,XHDPI 下乘以 1.333,MDPI 下乘以 0.666 ,LDPI 下除以 2

而以 LDPI 和 XHDPI 为基准就更复杂了,所以选择 160 dpi 
  评论这张
 
阅读(405)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018