首页 > 其他 > 详细

终结关于dp px ppi等单位的问题

时间:2016-03-16 19:02:57      阅读:144      评论:0      收藏:0      [点我收藏+]

其实现在讨论这些实际意义没有原来大了,因为Google现在推荐使用百分比来做适配,关于dp的纠结没有原来那么烦人了,所以本篇只当是个小科普吧。

 

1.首先dp是什么?

dp是google封装好的像素单位,主要用来解决不同物理尺寸(注意不是不同像素密度(dpi/ppi),因为不同的像素密度还要做density适配,下面会说)移动设备的适配问题,一般来说dpi高的屏幕可用的dp就多,所以就会出现一些手机上的app在平板上打开控件会变得小很多。

dp与px换算公式:px = dp*ppi/160
         dp = px / (ppi / 160)

注:因为在现实中会出现像素的漂移,所以在应用中一般会在dp取值的后边加上0.5,这个值不唯一,也无规律;

有关dp更多见这里:http://blog.sina.com.cn/s/blog_6499f8f101014ipq.html;

 

2.android中为什么会出来个density?

首先density=dpi/160dpi,可以看作你的设备与标准设备的比值,越大代表屏幕的密度越高,另外google引进这个指标主要是用来区分不同物理尺寸相同分辨率的设备,因为android默认的常见的有3个dpi,low、medium和high,对应 160、240、320,如果没有特别设置,所有的dpi都会被算成这3个,所以相应的density取值常见的有:1、1.5、2,与之相对应的: 

当屏幕density=2时,使用xhdpi标签的资源 

当屏幕density=1.5时,使用hdpi标签的资源 

当屏幕density=1时,使用mdpi标签的资源

 

3.dpi是什么?

dpi等同于ppi是屏幕的一个参数,越大表示画面越细腻,计算方法是对角线上含有的像素个数除以手机尺寸(实际也是对角线的长度),知道分辨率后可以通过直角三角形求斜边的方法算出对角线像素个数,然后算出dpi;

 

4.关于px

px是多少就是多少,到哪都不会变,想象1厘米的长度;

 

最后,dp并不是万能的,只解决了一部分的适配问题,现在随着手机厂商硬件竞赛,dpi狂飙,这套系统已经慢慢跟不上节奏了,偶然在网上看到大神自己写了一套适配方案,有兴趣的可以了解下:http://blog.csdn.net/lmj623565791/article/details/49990941

 

终结关于dp px ppi等单位的问题

原文:http://www.cnblogs.com/elementY/p/5284577.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!