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

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

相关推荐

    UI——dp、dip、px、dpi、density概念及关系

    UI——dp、dip、px、dpi、density概念及关系 UI 开发中,常见的衡量单位有 dp、dip、px、dpi 和 density,这些单位之间存在一定的关系和转换公式,对于 Android 开发者来说,理解这些概念和关系非常重要。 dp...

    android系统如何自适应屏幕大小

    1.4密度无关的像素(Density-independent pixel——dip) dip是一种虚拟的像素单位 dip和具体像素值的对应公式是dip/pixel=dpi值/160,也就是px = dp * (dpi / 160) 当你定义应用的布局的UI时应该使用dp单位,确保...

    Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读.doc

    要把密度无关像素转换为屏幕像素,可以用这样一个简单的公式:pixels = dips * (density / 160)。 Android平台将所有的屏幕以密度和分辨率为分类方式,各自分成了三类:高密度(hdpi)、中密度(mdpi)和低密度...

    安卓Android源码——安卓Android 时间轴样式.zip

    7. 适配不同屏幕尺寸:在设计时间轴样式时,要考虑到Android设备的多样性,确保在不同分辨率和屏幕尺寸上都能良好显示。可以使用比例值(dp/dip)代替固定像素值,以及响应式布局技术。 8. 交互设计:考虑时间轴的...

    芯片封装——DIP

    按照封装的外形可分为DIP、SOT、SOP、QFP、PLCC等,因为工艺要求和应用行业环境不同,对应着不同的封装。在封装材料上,主要有三大类:金属封装,主要应用于军事,航天;陶瓷封装,应用于军事行业和少量商业化;塑料...

    android 自适应屏幕大小

    分辨率(Resolution)是指屏幕的像素数量,而DPI则是衡量屏幕清晰度的重要指标,它与屏幕尺寸和像素数量相关。 总结来说,Android开发者要实现屏幕自适应,需关注以下几个关键点: 1. 使用dip作为单位,保证元素...

    Android应用源码获取手机屏幕尺寸的代码段.zip

    3. `density`:是像素密度的一个缩放比例因子,用于将像素值转换为与密度无关的单位(dp或dip)。 4. `widthDp` 和 `heightDp`:表示屏幕的逻辑宽度和高度,以密度无关像素(density-independent pixels, dp)为单位...

    android屏幕适配方案

    在Android开发中,屏幕适配是一项至关重要的任务,因为Android设备有着广泛的屏幕尺寸和分辨率,从小型手机到大型平板电脑不一而足。一个良好的屏幕适配方案能够确保应用程序在不同设备上显示一致且用户体验良好。...

    android屏幕适配px工具类

    在Android系统中,屏幕适配的核心是理解并利用密度独立像素(dp/dip)和像素比(scale density)。dp是一种抽象单位,与设备的物理像素无关,而是基于设备的密度进行计算。1dp在所有设备上都应该占据相同大小的空间...

    引用 Android上dip、dp、px、sp等单位说明

    **sp**(scaled pixels)是一种与屏幕密度相关的像素单位,主要用于定义文本大小。与dp类似,sp也会根据设备的屏幕密度进行缩放,但是sp还考虑了用户的字体大小设置。这意味着即使在相同的屏幕密度下,如果用户更改了...

    Android软件自适应屏幕技巧

    `dip`或`dp`是用来表示与屏幕密度无关的像素值,通常用于定义布局和控件的大小;`sp`主要用于设置文本大小,它可以自动调整字体大小以适应不同的屏幕密度。 - **提示**:从Android 1.6版本开始,可以通过在`...

    android开发之dip,dp与px像素之间的转换工具,

    在Android开发中,理解和使用dip(设备独立像素)、dp(密度无关像素)以及px(像素)是非常重要的,因为它们关系到应用在不同分辨率屏幕上的显示效果。本篇将详细介绍这三个概念及其相互转换。 首先,像素(px)是...

    Android屏幕大小和精度

    3. 像素密度(DP)与像素(PX):DP是开发者使用的虚拟像素单位,与实际像素无关,而PX是屏幕实际的像素数量。两者之间的转换通过密度系数(dpi/160)进行。 4. 屏幕比例:宽高比表示屏幕宽度与高度的比例,例如16:...

    Android针对不同的手机屏幕大小设计图片资源与编码

    例如,一个480dip*800dip的WVGA屏幕(density=240),在不同密度下会有不同的实际分辨率,需要相应调整图片的大小以适应这些变化。 总之,Android开发者需要深入理解这些概念,以创建能够在各种设备上无缝运行的...

    Android屏幕自适应

    ##### 1.4 密度无关的像素(Density-independent pixel —— dip) dip是一种虚拟的像素单位,用于解决不同屏幕密度导致的显示问题。dip和具体像素之间的换算关系由以下公式决定:dip/pixel = dpi值 / 160,即px = ...

    Android中dip、dp、sp、pt和px的区别

    本文将详细解析Android中常见的五种尺寸单位:dip(设备独立像素)、dp(密度无关像素)、sp(可缩放像素)、pt(点)和px(像素),并探讨它们之间的关系和应用场景。 首先,我们来了解一下px(像素)。像素是屏幕...

    Android自适应屏幕分辨率

    在 Android 开发中,需要了解屏幕分辨率和 density 的关系,正确地使用 weight 属性和 dimens,才能实现真正的自适应屏幕分辨率。 在实际开发中,我们需要根据不同的屏幕分辨率和 density 创建不同的文件夹和 ...

    Android的计量单位px,in,mm,pt,dp,dip,sp

    px是绝对单位,与屏幕的物理分辨率直接相关,因此在不同密度的屏幕上,相同数量的px会占据不同的物理空间。 2. **in(英寸)**:英寸是长度单位,1英寸等于25.4毫米。在Android中,in通常用于计算屏幕尺寸,而不是...

    安卓Android源码——多分辨率适配,判断平板还是手机,等比例缩小图片.zip

    以上是关于"安卓Android源码——多分辨率适配,判断平板还是手机,等比例缩小图片"的详细知识点介绍,这些技术对于开发适应各种Android设备的应用至关重要。在实际项目中,结合这些知识和压缩包中的代码示例,可以...

    Android DevCamp幻灯片分享:Android在多屏幕、多设备上的适配 | 布丁 任斐

    - **Density-independent pixel (DIP)**:一种抽象单位,用于避免因屏幕密度不同而导致的布局问题,通过将像素转换成基于屏幕密度的独立单位(dp)来实现。 #### 四、通用化的屏幕尺寸与密度定义 - **通用密度(G.DPI)...

Global site tag (gtag.js) - Google Analytics