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与屏幕兼容性的关系。
分享到:
相关推荐
UI——dp、dip、px、dpi、density概念及关系
1.4密度无关的像素(Density-independent pixel——dip) dip是一种虚拟的像素单位 dip和具体像素值的对应公式是dip/pixel=dpi值/160,也就是px = dp * (dpi / 160) 当你定义应用的布局的UI时应该使用dp单位,确保...
按照封装的外形可分为DIP、SOT、SOP、QFP、PLCC等,因为工艺要求和应用行业环境不同,对应着不同的封装。在封装材料上,主要有三大类:金属封装,主要应用于军事,航天;陶瓷封装,应用于军事行业和少量商业化;塑料...
描述android的dip dp px dp等单位及其转换关系
DIP基础训练题之直方图均衡以及线性和非线性变换
android开发之dip,dp与px像素之间的转换工具,博文介绍:http://blog.csdn.net/qq_21376985/article/details/51704703
这里要特别注意dip与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正确,有可能导致dip不能正常显示。在屏幕密度为160的显示屏上,1dip=1px,有时候可能你的屏幕分辨率很大如480*800,但是屏幕密度没有...
DIP4DIP8DIP16 DIP24封装Altium Designer AD PCB封装库2D3D元件库文件,25个DIP 3D视图封装,DIP_TP20-300 DIP_TP40-600 DIP4-300 DIP6-300 DIP8-300 DIP8-300_MH DIP14-300 DIP14-300_MH DIP16-300 DIP16-300_MH ...
DIP4-300、DIP6-300、DIP8-300、DIP8-300_MH、DIP14-300、DIP14-300_MH、DIP16-300、DIP16-300_MH、DIP18-300、DIP18-300_MH、DIP20-300、DIP20-300_MH、DIP22-300、DIP22-300_MH、DIP24-300、DIP24-300_MH、DIP24-...
NULL 博文链接:https://1307111376.iteye.com/blog/1986752
<TextView android:layout_width="fill_parent" android:padding="5dip" android:gravity="center" android:textSize="20sp" android:id="@+id/msg" android:layout_height="60dip"/> <LinearLayout android:...
DIP目录库(1.0版
简单的比较android各个单位的小程序
android:layout_height="228.0dip" android:layout_marginTop="10.0dip" xmlns:android="http://schemas.android.com/apk/res/android"> android:layout_width="fill_parent" android:layout_height=...
本例知识点:Dialog透明,圆角,及GridView的简单用法。... android:bottomLeftRadius="10dip" android:bottomRightRadius="10dip" android:topLeftRadius="10dip" android:topRightRadius="10dip" /> </shape>
DIP_TP20-300 DIP_TP40-600 DIP4-300 DIP6-300 DIP8-300 DIP8-300_MH DIP14-300 DIP14-300_MH DIP16-300 DIP16-300_MH DIP18-300 DIP18-300_MH DIP20-300 DIP20-300_MH DIP22-300 DIP22-300_MH DIP24-300 DIP24-300_...
Android的计量单位px,in,mm,pt,dp,dip,sp Android的计量单位px,in,mm,pt,dp,dip,sp
android:textSize="20dip"//大小 android:capitalize = "characters"//以大写字母写 android:textAlign="center"//EditText没有这个属性,但TextView有,居中 android:textColorHighlight="#cccccc"//被选中文字的...
单一职责原则——SRP 开放封闭原则——OCP Liskov替换原则 —— LSP 依赖倒置原则—— DIP 接口隔离原则—— ISP
本资源适应以下分辨率的android设备,不管android设备尺寸大小 像素宽 =1024 高 =720 ...方法:先得到手机屏幕的像素px,再根据像素PX得到 手机屏幕的独立像素dip,然后根据dip计算来相应布局,就能得到你想要适应的像素