Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LCD的DIP是什么

LCD的DIP是什么

作者头像
233333
发布于 2021-03-08 14:00:44
发布于 2021-03-08 14:00:44
79300
代码可运行
举报
运行总次数:0
代码可运行

是Density independent pixel的缩写,指的是抽象意义上的像素。跟设备的屏幕密度有关系。

  它是Android里的一个单位,dip和dp是一样的。

Google的官方说明是这样的:

Density-independent pixel (dp)

  A virtual pixel unit that you should use when defining UI layout, to express layout dimensions or position in a density-independent way. The density-independent pixel is equivalent to one physical pixel on a 160 dpi screen, which is the baseline density assumed by the system for a "medium" density screen. At runtime, the system transparently handles any scaling of the dp units, as necessary, based on the actual density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels. You should always use dp units when defining your application's UI, to ensure proper display of your UI on screens with different densities.

  就是说在160dpi的屏幕上,1dip=1px。   它跟屏幕密度有关,如果屏幕密度大,1dip代表的px就多,比如在320dpi的屏幕上,1dip=2px。

为什么我们在布局的时候最好要用dip,不要用px?   是因为这个世界上存在着很多不同屏幕密度的手机,屏幕密度是什么?就是dpi,就是单位长度里的像素数量。

  想象一下,如果这些手机的尺寸一样,屏幕密度相差很大,那么是不是说一个手机水平方向上像素很少,另一个手机水平方向上像素很多?那我们画同样pix数量的时候,它显

  示的长度不就会不一样了?

  比如下面图中的两个手机,同时设置2px长度的Button,在屏幕密度较高的手机里就会显示的比较小。

  而同时设置的2dip长度的Button,在两个手机上显示的大小是一样的。

所以如果你在App布局中都用的px作为单位,那么你的App跑在各个设备上就会出现奇奇怪怪的现象了。

来看一下emulator上的效果,我定义了两个Button,分别用px和dip做单位。

布局文件里这样写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Button android:layout_width="100px"
android:layout_height="100px"
android:text="@string/str_button1"/>

<Button android:layout_width="100dip"
android:layout_height="100dip" 
android:text="@string/str_button1"/>

显示的界面是这样的:

getResources().getDisplayMetrics().densityDpi 就是屏幕密度。

getResources().getDisplayMetrics().density 也可以理解为1dip相当于多少个px啦。

上面的dpi是240,1dip=1.5px

你看,100dip的Button是100pxButton的1.5倍长吧。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
屏幕分辨率dpi计算_hypodensity
我这里有一个400px*400px的正方形 由于一英寸=326,不够放,所以要用2英寸放
全栈程序员站长
2022/09/20
4.2K0
屏幕分辨率dpi计算_hypodensity
Android UI 开发里的尺寸单位理解
在学习 Android UI 开发的初期,经常被一些常用概念如 dp、sp 和它们与 px 的换算等虐,要避免被虐,最好的方法当然是知其所以然,再见到它们就胸中有料心不慌了。
mzlogin
2020/04/16
1.3K0
Android UI 开发里的尺寸单位理解
android手机分辨率
4:3 VGA 640*480 (Video Graphics Array) QVGA 320*240 (Quarter VGA) HVGA 480*320 (Half-size VGA) SVGA 800*600 (Super VGA)
用户9854323
2022/06/25
9500
android手机分辨率
Android图片资源
用户1172465
2018/01/05
1.4K0
Android图片资源
【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19698511
韩曙亮
2023/03/27
7860
【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
适配完结篇一 - 超快速的Android屏幕适配方式
由于Android碎片化严重,屏幕分辨率千奇百怪,而想要在各种分辨率的设备上显示基本一致的效果,适配成本越来越高。虽然Android官方提供了dp单位来适配,但其在各种奇怪分辨率下表现却不尽如人意,因此下面探索一种简单且低侵入的适配方式。
acc8226
2022/05/17
9680
适配完结篇一 -  超快速的Android屏幕适配方式
038android初级篇之android UI中的单位
density值表示每英寸有多少个显示点 而分辨率表示设备长和宽上的像素的个数。
上善若水.夏
2018/09/28
4670
布局文件中的sp、dp还有px的区别
众所周知,Android厂商非常多,各种尺寸的android手机、平板层出不穷。导致了Android生态环境的碎片化现象越来越严重。Google公司为了解决分辨率过多的问题,在Android的开发文档中定义了px、dp、sp,方便开发者适配不同分辨率的Android设备。对于初级程序员来说理解掌握适配的一些基础知识是必须的。
233333
2020/06/15
2.6K0
布局文件中的sp、dp还有px的区别
Android中关于dip和px以及转换的总结
我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼。在Android中支持的描述大小区域的类型有以下几种: px(pixels)——像素:不同的设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。 dip(device independent pixels)——设备独立像素:这个和设备硬件有关,一般我们为了支持WCGA、HVGA和QVGA推荐使用这个,不依赖于像素。等同于dp。 sp(scaled pixels—best for text size)——
欢醉
2018/01/22
9240
Android技能树 — 屏幕适配小结
关于屏幕适配,几乎每隔一段时间就会看见有人发出来说XXX方案,实现超级简单的适配方式等等。所以我把我目前了解过的常用的适配方案做个总结,并简单说说原理,从而让大家也初步了解各个方案的实现。(其实很多人都是看见别人写的适配方案,虽然可能实际在使用了,但是却从来没有去了解过这个方案的原理,而且遇到一些简单的坑的时候,因为不知道原理,也无法自己解决。)
青蛙要fly
2018/08/29
9290
Android技能树 — 屏幕适配小结
安卓开发之dip,dp,px,sp
1、dip device independent pixels(设备独立像素). 不同设备不同的显示效果,这个和设备硬件有关, 一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。 dip的换算: dip(value)=(int) (px(value)/1.5 + 0.5) 2、dp 等同于dip一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。 3、px pixels(像素) 屏幕上的点,不同设备不同的显示屏显示效果相同,这是绝对像素,是多少就永远是多少不
苦咖啡
2018/05/08
8210
Android中你可能忽略的知识点(1)-分辨率那些事
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/80265069
Hankkin
2018/09/06
1.1K0
Android中你可能忽略的知识点(1)-分辨率那些事
Android绘图机制与处理技巧-更新中
Android手机屏幕,不管是分辨率还是大小,五花八门。。。要想在不同的屏幕上保持绘图的准确性,需要对屏幕有充分的认识.
小小工匠
2021/08/16
7540
android系统如何自适应屏幕大小
1、屏幕相关概念 1.1分辨率 是指屏幕上有横竖各有多少个像素 1.2屏幕尺寸 指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸 android将屏幕大小分为四个级别(small,normal,large,and extra large)。 1.3屏幕密度 每英寸像素数 手机可以有相同的分辨率,但屏幕尺寸可以不相同, Diagonal pixel表示对角线的像素值(=),DPI=933/3.7=252 android将实际的屏幕密度分为四个通用尺寸(low,medium,high,and extra high) 一般情况下的普通屏幕:ldpi是120dpi,mdpi是160dpi,hdpi是240dpi,xhdpi是320dpi 对于屏幕来说,dpi越大,屏幕的精细度越高,屏幕看起来就越清楚 1.4密度无关的像素(Density-independent pixel——dip) dip是一种虚拟的像素单位 dip和具体像素值的对应公式是dip/pixel=dpi值/160,也就是px = dp * (dpi / 160) 当你定义应用的布局的UI时应该使用dp单位,确保UI在不同的屏幕上正确显示。 手机屏幕分类和像素密度的对应关系如表1所示 手机尺寸分布情况(http://developer.android.com/resources/dashboard/screens.html)如图所示, 目前主要是以分辨率为800*480和854*480的手机用户居多 从以上的屏幕尺寸分布情况上看,其实手机只要考虑3-4.5寸之间密度为1和1.5的手机 2、android多屏幕支持机制 Android的支持多屏幕机制即用为当前设备屏幕提供一种合适的方式来共同管理并解析应用资源。 Android平台中支持一系列你所提供的指定大小(size-specific),指定密度(density-specific)的合适资源。 指定大小(size-specific)的合适资源是指small, normal, large, and xlarge。 指定密度(density-specific)的合适资源,是指ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high). Android有个自动匹配机制去选择对应的布局和图片资源 1)界面布局方面    根据物理尺寸的大小准备5套布局:     layout(放一些通用布局xml文件,比如界面顶部和底部的布局,不会随着屏幕大小变化,类似windos窗口的title bar),     layout-small(屏幕尺寸小于3英寸左右的布局),       layout-normal(屏幕尺寸小于4.5英寸左右),     layout-large(4英寸-7英寸之间),     layout-xlarge(7-10英寸之间) 2)图片资源方面   需要根据dpi值准备5套图片资源:     drawable:主要放置xml配置文件或者对分辨率要求较低的图片     drawalbe-ldpi:低分辨率的图片,如QVGA (240x320)     drawable-mdpi:中等分辨率的图片,如HVGA (320x480)     drawable-hdpi:高分辨率的图片,如WVGA (480x800),FWVGA (480x854)     drawable-xhdpi:至少960dp x 720dp Android有个自动匹配机制去选择对应的布局和图片资源。   系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。   在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。 3、AndroidManifest.xml 配置 android从1.6和更高,Google为了方便开发者对于各种分辨率机型的移植而增加了自动适配的功能           <supports-screens            android:largeScreens="true"               android:normalScreens="true"              android:smallScreens="true"               android:anyDensity="true"/> 3.1是否支持多种不同密度的屏幕 android:anyDensity=["true" | "false"]  如果android:anyDensity
用户2192970
2019/02/21
5.5K1
Android的分辨率
这些术语都是指屏幕的分辨率。 VGA:Video Graphics Array,即:显示绘图矩阵,相当于640×480 像素; HVGA:Half-size VGA;即:VGA的一半,分辨率为480×320; QVGA:Quarter VGA;即:VGA的四分之一,分辨率为320×240; WVGA:Wide Video Graphics Array;即:扩大的VGA,分辨率为800×480像素;
forrestlin
2022/04/02
1.2K0
Android的px、dp和sp
即像素,1px代表屏幕上一个物理的像素点;偶尔用到px的情况,是需要画1像素表格线或阴影线的时候。
全栈程序员站长
2022/07/15
4630
Carson带你学Android:最全面、最易懂的屏幕适配解决方案
给你带来一种全新、全面而逻辑清晰的Android屏幕适配思路,只要你认真阅读,保证你能解决Android的屏幕适配问题!
Carson.Ho
2022/03/24
1.7K0
Carson带你学Android:最全面、最易懂的屏幕适配解决方案
实用Android 屏幕适配方案分享
真正可用,并且简单易行,可以在多个屏幕大小和屏幕密度上有良好表现的Android 屏幕适配方案,已用在一款成熟互联网应用中,效果还不错。 说起android开发,UI界面的多机型适配,一向是个很重要
xiangzhihong
2018/01/30
1.3K0
实用Android 屏幕适配方案分享
谈谈Android屏幕适配的那些事,我们到底该怎么去选择
每个Android程序员都会遇见一个棘手的问题,那就是手机适配。因为现在出现了许多分辨率的手机,所以我们必须得考虑到各种分辨率的手机适配,这对于程序员来说是一个必须要解决的麻烦。
Android技术干货分享
2019/03/26
1.1K0
谈谈Android屏幕适配的那些事,我们到底该怎么去选择
为 DP 设计布局
什么是屏幕尺寸、屏幕分辨率、屏幕像素密度? 什么是dp、dip、dpi、sp、px?他们之间的关系是什么? 什么是mdpi、hdpi、xdpi、xxdpi?如何计算和区分? 题图中的每一个矩形都代表着一种Android设备。Android系统碎片化问题的严重性,让我们不得不面对屏幕适配的问题。 屏幕尺寸: 屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米。 比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等。 屏幕分辨率: 屏幕分辨率是指在横纵向上的像
阿凯
2018/06/29
6280
相关推荐
屏幕分辨率dpi计算_hypodensity
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验