`
dengbaoleng
  • 浏览: 1131625 次
文章分类
社区版块
存档分类
最新评论

android——dip与屏幕density无关的解读

 
阅读更多

2011-09-20 10:18 223人阅读 评论(1) 收藏 举报

android中UI布局中常用dip/dp,因为据sdk文档和各种资料所说“使用dp这样的长度单位可以兼容不同density的屏幕”——但是对这句话的理解直到今天才算真正搞明白是什么含义,惭愧至极敲打,特此blog记录。下面的列表针对如下的一个layout布局的x水平方向,共列出多种情况来分析dp、px和视觉感官之间的关系:


dp与px的换算关系为:px = (density/160)dp


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="250dp"
android:layout_height="100dp" android:background="@android:color/white">
</LinearLayout>


dpi dp px x-total x-inch 视觉比例 物理长度

160 100 100 320 2-inch 0.3125 0.625 inch

240 100 150 480 2-inch 0.3125 0.625 inch

120 100 75 240 2-inch 0.3125 0.625 inch

120 100 75 480 4-inch 0.15625 0.625 inch

192 100 120 768 4-inch 0.15625 0.625 inch

192 100 120 800 4.16-inch 0.15 0.625 inch


结论:px和dp的换算公式实际反映的屏幕物理尺寸因为物理密度的不同而产生的变化,dpi、x-total和x-inch三者之间是紧密相关的,三者中若其一保持不变,则另外二者必然同步变化,根据这样的变化分类,所谓的dp与屏幕density无关,有两层次含义:

1、指的是在相同物理尺寸下(例如同为4-inch,或同为2-inch),dp值相同的UI组件在不同物理密度density的屏幕上将会给予人眼相同的视觉比例感官。例如上表中同为物理长度4-inch,但密度分别为120和192的两个屏幕中,具有100dp长度的UI部件在水平方向上给予人的视觉比例感官同为15.625%

2、在不同物理尺寸下(例如一个屏幕4-inch,一个屏幕2-inch),dp值相同的UI组件在不同物理密度density的屏幕上将会占据同样的物理尺寸,例如上表中所有的UI部件均为100dp,无论dpi是多少,也无论x-inch是多少,占据的物理长度始终为0.625inch。但是在这种情况下,UI部件在各个屏幕上给予人的视觉比例感官则是不同的,之前本人遇到这样的情况时就会疑惑dp与屏幕兼容性的关系。

分享到:
评论
1 楼 su1216 2012-06-27  
你的理论有问题,比如你说dip与屏幕density无关,比如你说和屏幕长度有关(dpi、x-total和x-inch三者之间是紧密相关的)等。。

刚刚写了个blog
http://su1216.iteye.com/admin/blogs/1569029

相关推荐

Global site tag (gtag.js) - Google Analytics