软录 · 2023年6月8日

安卓dp和像素转换|谁能通俗举例dp、sp、px的转换关系

A. 这一次要帮你彻底搞明白px、ppi、dot、dpi、sp、dp、pt

这一次要帮你彻底搞明白px、ppi、dot、dpi、sp、dp、pt 这是初级设计师经常弄混淆的几个概念,下面我以“基本概念,易混淆的点,从问题入手,总结”四个方面来聊一聊 Px,ppi;dot,dpi; sp,dp;pt 那些事儿。 一、px,ppi;dot,dpi; sp,dp;pt 的基本概念 1. px:像素 1像素实际上是一个颜色点,所以又称像素点。大量不同颜色点组成一张图像,因此图像的基本单位是像素px(没有比像素更精细的单位了)。 像素主要用来表示图像大小和显示器分辨率(如1920*1080px)。像素本身的物理尺寸不固定,所以它的物理尺寸没有意义,有意义的是它的数量。 为什么像素的物理尺寸不固定? 像素本身不是物理世界的单位,是一个相对单位,尺寸可大可小。在高密度的屏幕上像素会变小,显示效果更清晰。因为“像素量px = 像素密度ppi x 屏幕尺寸in”,同样是1英寸的屏幕,密度越大,像素越多,则单个像素的物理尺寸越小。 都是图片相关信息,图片体积和像素有什么关系? 通常所说的100KB的图片指的就是图片的体积,首先一张图像在存储时,会描述每个像素点的颜色信息、位置、数量,这些描述数据就是图像的体积,如果像素越多自然图像体积越大。假如一张图片都是一个颜色,图像在保存时就会压缩,只存一个像素点的颜色信息,这样的图像体积会小很多。所以,像素点越多,颜色越复杂,图像体积越大。 为什么我们要买高像素的相机? 日常我们所说的几百万像素的相机,这个几百万像素指的是拍摄最大像素量照片时,图像宽高位置上像素量的乘积。如果像素量大,将来印刷或者在显示器上查看,在1英寸上就有足够多的像素显示,像素密度增加,图像也会更清晰。因此,我们更愿意买高像素的相机。 总结: 像素px常用来描述图像尺寸和显示器分辨率。 2. ppi:像素密度(pixel per inch) 1英寸屏幕上显示的像素量,密度单位。决定图片的物理显示尺寸,只有涉及到显示才有意义。值越大,显示越细腻。 计算公式: ppi=屏幕对角线上的像素量px/对角线长度inch = √(屏幕横向像素^2 + 屏幕纵向像素^2)/对角线长度。 为什么说ppi决定图片的物理尺寸? 一个手机的显示屏在出厂时就确定了PPI的值,PPI越大,显示越高清。图片的物理尺寸 = PPI * Px,通常一张图像的px确定,ppi越大,则它的物理尺寸越小。所以为什么我们在高PPI的手机上,人眼看到的图像比低PPI的图形小。在设计行业,我们会针对高PPI的手机,设计更大像素的图像也是这个道理。 日常所说的分辨率有两个概念,一个指显示器的分辨率,另一个指图像的分辨率。显示器分辨率指显示器所能显示的像素多少(1920px*1080px),显示器可显示的像素越多,画面就越精细,因为屏幕尺寸一定,分辨率越大,像素密度越大。显示器分辨率都用(1920px*1080px)这种形式表示,清晰度还需要结合屏幕尺寸计算。图像分辨率则是单位英寸中所包含的像素点数,比如photoshop 里新建画布时设置的图像分辨率72ppi,其定义更趋近于分辨率本身的定义 注意: 同一显示屏上查看图片,像素量越大,图片尺寸越大。 显示分辨率一定的情况下,显示屏越小图像越清晰(比如MacBook),反之,显示屏大小固定时,显示分辨率越高图像越清晰。 对于设计师来说像素密度很重要,需要很据像素密度来切图和适配,理解了像素密度的意义,就理解了几倍图之间的关系。 3. dot:墨点 印刷品的最小单位,表示一个印刷颜色点,类似px,只有相对大小,用在印刷行业。 4. dpi:打印分辨率 (dot per inch) 1英寸上打印的墨点数量,密度单位,只用在印刷行业,值越大,印刷越精细。 注意: 与安卓的dp完全没关系。 印刷行业相关的单位是dot,dpi。印刷尺寸(英寸)=打印墨点数(dot)/打印机密度(dpi)。 照片的清晰度,是由打印机分辨率决定的。所以一张照片包含的像素越多(需要高像素照相机拍摄),高dpi打印机就可以打印出清晰的图片。如果照片像素量px一定, 打印机的dpi越高, 则打印尺寸越小。(这里可设置为dot=px) 5. pt:点(印刷) 大小为1/72英寸=0.35mm,单位是英寸,是物理长度单位,大小固定,绝对单位。源于活字排版时代,photoshop里的字体单位就只这个。 公式: 1pt= (PPI / 72) px。 当photoshop中新建画布的分辨率为72ppi,由公式,则1pt=1px。当分辨率为144ppi时,1pt=2px。 注意: 这里指印刷行业的pt哦! 6. pt: 点(iOS) iOS系统开发单位,是独立像素的意思,长度固定,不随屏幕像素密度ppi变化而变化。 苹果公司规定:普屏时1px=1px,而普屏的ppi=163像素/英寸,那么pt=1/163英寸=0.16mm(固定值)。普屏1px=1px,高清屏1pt=2px。 用固定长度pt作为开发单位的好处是,这样可以保证同一张图片在不同设备上显示大小一样,因为pt值是固定的。高清屏上1pt等于更多的像素px,因为像素在高清屏上变小,所以pt还是固定的。 7. dp:长度(Android) (Density-independent pixel) 是安卓开发用的长度单位。 根据不同的屏幕分辨率,与px有不同的倍数关系。规定:1dp等于屏幕像素密度为160ppi时1px的长度,因此dp在整个系统大小是固定的。公式:1dp=(屏幕ppi/ 160)px。 1dp等于屏幕像素密度为160ppi时1px的长度,即,在mdpi时,1dp = 1px。 以mdpi为标准,这些屏幕的密度值比为: ldpi : mdpi : hdpi : xhdpi : xxhdpi = 0.75 : 1 : 1.5 : 2 : 3。android中清屏1dp=1px,高清屏1dp=1.5px,超清屏1dp=2px。 做设计时以xhdpi为模板, xhdpi条件下1dp=2px,标注长度的时候,将长度像素除以2即为dp值,这样方便和开发沟通。 8. sp:大小(Android) (scale-independent pixel) 安卓开发用的字体大小单位。 注意: dp和sp都是安卓开发的单位,dp是长度单位,sp是字体单位。一般情况下可认为sp=dp。 二、易混淆的点 px和dot 都是点的概念,px应用在电子显示设备上,是显示图像的基本单位。dot应用在印刷行业,是打印图片的基本单位。 ppi和dpi ppi和dpi无关系,互不影响 。 ppi影响图像的显示尺寸,dpi影响图像的打印尺寸。打印时可以让数量上px=dot,则设计时在photoshop里设置的ppi大小,可以认为是dpi大小。 很多技术人员经常把ppi和dpi画等号, 其实他们的物理意义不一样,但是因为混淆的人多了,所以在电子屏幕显示中提到的ppi和dpi我们可以认为是一样的。 pt和dp iOS系统的pt和Android系统的dp概念是相似的。 三、从问题入手深入理解概念 1.设计印刷品时,为什么说在ps里设置的ppi没有实际意义,但还是要设置呢? 首先我们要明白,打印的分辨率dpi是由实际的打印机决定的,所以在ps里设置分辨率根本没有意义。但是我们可以预期打印效果,比如多大的分辨率和尺寸,有了这两个值就能确定像素量px,即,只要像素量满足要求,就能打印出预期的效果。所以ps里设置分辨率ppi是为了让ps计算出像素量大小。 2.photoshop里,高ppi和低ppi画布的显示差别? Photoshop里的显示大小只和图像的像素量和显示器分辨率有关。显示器是确定的,所以像素量越大,显示尺寸越大。 3.photoshop里, 相同像素的图像,高ppi图像拖入到低ppi图像里,高ppi的图像变小, 为什么? 因为拖入后,高ppi的文档分辨变小,photoshop把图像的像素按照ppi变小的比例变小。这样里体现了不同ppi的图像在photoshop里的转换关系。 4.photoshop里,相同像素的图像,低ppi图像拖入高ppi图像里,低ppi的图像无变化,为什么? 因为拖入后,低ppi的文档分辨变大,photoshop把图像的像素按照ppi变大的比例变大,这样就超过了画布尺寸,photoshop按照置入图片的原理显示,即按最大边匹配。 5.使用软件的方式,增加图像的像素px,或者提高图像的像素密度ppi,对图像有什么影响? 软件增加图片像素,图片会变模糊,因为增加的不是有效像素,所谓高清图是指包含有效像素多的图片。显示清晰度由显示器本身决定,图片的ppi没有意义。 6.100*100px的图片,ps改变它的ppi,会怎样? 像素是确定的,即不会影响显示,也不会影响印刷。 四、总结 1.手机设计稿 因为手机屏幕的ppi和英寸确定,那么像素可计算出来,即px确定,只需设置ps的画布像素px相同就可以了,ps里设置的ppi对手机设计稿而言并没有什么意义,可以随便设置;手机只关注图片的像素够不够,因为是按照手机1:1的像素设计。所以,适配高ppi手机的设计稿,修改ps的ppi是没有用的,而应该按照高ppi的像素修改设计稿。 2.打印设计稿 打印尺寸和打印分辨率300dpi确定, 但ps以px为单位,由公式dot=英寸*dpi,px=英寸*ppi,英寸相同, dpi=ppi=300,那么数量上可以dot=px。ps的英寸和ppi确定, px也确定,但不能直接得出px数量,但是ps可直接设置厘米cm, 那就只需要设置宽高的厘米和分辨率300ppi=118.11像素/厘米,就可以间接设置所需的像素量,这就能保证300dpi清晰度和打印尺寸。(设置300dpi时ps会自动转化为118.11像素/厘米)

B. 在ui入门学习中,dp和 px怎么换算

dp和px的换算公式 :dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。dp也就是dip:device independent pixels(设备独立像素)。dp是一种与密度无关的像素单位,在每英寸160点的屏幕上,1dp = 1px。px(像素):屏幕上的点。

C. vivos9最小宽度是多少dp

S9机型最小宽度值是360dp,建议不要使用代码操作手机,也不要修改开发者模式中的设置,以免手机使用出现异常;在手机的使用过程中有疑惑,可进入vivo官网–我的–在线客服–输入人工,咨询在线客服反馈。

D. 安卓系统中dp,px,pt,sp 的区别 以及dp 和 px 互转

dip: device independent pixels(设备独立像素). 一般我们为了支持多种分辨率如WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。内 dp: dip是一样的,谷歌官方容推荐使用这个px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320×480像素,这个用的比较少。pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

E. 新手Android中px=dp*(dpi/160)的解释

在160dpi的手机上1px=1dp,这句话的以上是说,手机屏幕宽带被分割成了160块,每一块有一个像素点,每一块就是一个dp。 那么1dp=1px

而320dpi的手机上,分辨率是上一个手机的两倍,手机屏幕宽带也被分割成了160块,每一块有两个像素点,每一块也是一个dp,那么1dp=2px

上面分析来自于android学习手册,360手机助手中可以下载,里面有108个android例子,源码文档都可在里面看,下面是截图

importandroid.content.Context;publicclassDensityUtil{/***根据手机的分辨率从dp的单位转成为px(像素)*/publicstaticintdip2px(Contextcontext,floatdpValue){finalfloatscale=context.getResources().getDisplayMetrics().density;return(int)(dpValue*scale+0.5f);}/***根据手机的分辨率从px(像素)的单位转成为dp*/publicstaticintpx2dip(Contextcontext,floatpxValue){finalfloatscale=context.getResources().getDisplayMetrics().density;return(int)(pxValue/scale+0.5f);}}

F. 手机上的图标是32×32dp,dp是什么意思

手机上的图标是32×32dp,dp是长度单位。设备独立像素的意思。

dp是一种物理测量单位,基于计算机控制的坐标系统和抽象像素(虚拟像素),由底层系统的程序使用,转换为物理像素的应用。

用途是允许移动设备软件将信息显示和用户交互扩展到不同的屏幕尺寸。允许应用程序以抽象像素为单位进行测量,而底层图形系统将应用程序的抽象像素测量值转换为适合于特定设备的物理像素。

(6)安卓dp和像素转换扩展阅读

dp与ppi计算:dp = dx * (dpi / 160)。例如,在 240 dpi 屏幕上,1 dp 等于 1.5 物理像素。

Android系统以“中”密度屏幕假设的基线密度,故该公式中dpi除以160dpi。在定义应用的 UI 时应始终使用 dp 单位 ,以确保在不同密度的屏幕上正常显示 UI。

位图缩放可能导致模糊或像素化位图。为避免这些伪影,应为不同的密度提供替代的位图资源。

G. 小米9最小宽度dp

您好,小米9辨率为2340*1080。小米9是小米公司于2019年2月20日14点在北京工业大学体育馆发布的手机,采用圆润的曲面机身,采用全曲面设计,颜色有深空灰、全息幻彩紫、全息幻彩蓝。后壳采用纳米级激光全息工艺加双层镀膜;边框厚度3.5毫米,最厚处7.61毫米,手机重173克。另外dp是安卓开发里面用来替代直接使用屏幕像素的一个单位,用它比直接用像素px。具体网络,它和像素换算关系为px=dp*(dpi/160)开发者选项里面这个其实这个不是ppi,改完之后自己看看显示那里就知道了,等于四屏幕宽度为1080px,换算一下432dp对应400dpi,数字越小dpi越大。

H. dp和px之间的换算公式

在Android开发中,尺寸换算可以说既简单又复杂,而且还比较碎,特别是屏幕适配的时候肯定会用到他们。今天就来总结一下他们三者的关系,首先说下他们都是什么。px:像素单位。最基础的图像构成元素单位 dp:与密度无关的像素,这是一个基于屏幕物理密度的抽象单位。 这里要解释一下密度的概念,密度(dpi):每英寸包含的像素个数(单位是dpi),1dp实际上相当于密度为160dpi的屏上的一个点。可否理解为物理尺寸?也就是说,如果屏幕物理密度是160dpi时,dp和px是等效的。 换算公式 1: px = dp * (dpi / 160) sp:同dp相似,但还会根据用户的字体大小偏好来缩放(建议使用sp作为文本的单位,其它用dip)咱们废话不多说,直接上表格,通过这个表格你会非常快速的定位到你要找的内容。宽×高(标准值)240×320320×480480x800720x12801080x19201440×2560DPI等级LDPIMDPIHDPIXHDPIXXHDPIXXXHDPIDPI数值 (density)120160240320480640对应比例346812161DP=?PX0.7511.5234注:density值表示每英寸有多少个显示点,与分辨率是两个概念。 MDPI为baseline,其他均以此为基准,在此设备上,1dp = 1px下面附上开发中用到的dp和px相互转换的工具类。sp和dp在开发中是同等对待的,只是sp是用来对文字的大小的。其他的全用dp就好。import android.content.Context; public class DensityUtil { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ 这个工具类在网上一大推,而且基本都一样,加0.5f是有个偏移值,确保精度不流失。scale是在这个类DisplayMetrics中定义的全局变量,其实这个值就是当前手机的density/160

I. 荣耀30最小宽度多少dp最好

荣耀30最小宽度360dp最好。开发者选项里面有个最小宽度显示,很多人没搞懂,dp是安卓开发里面用来替代直接使用屏幕像素的一个单位,用它比直接用像素px。具体网络,它和像素换算关系为px=dp*(dpi/160)开发者选项里面这个其实这个不是ppi,改完之后自己看看显示那里就知道了,等于四屏幕宽度为1080px,换算一下432dp对应400dpi,数字越小dpi越大。首先打开 ,设置,然后找到 开发者选项 点击打开。最后找到 最小宽度 ,随着智能手机的进化手机屏幕也跟着越来越精致,每款手机都有一个最佳最小宽度值;一般这个都是手机系统默认的,可以自行调控。调控前最好记住手机系统默认值,以便后期自行改回初始值。

J. 谁能通俗举例,dp、sp、px的转换关系

PPI = Pixels per inch,每英寸上的像素数,即 "像素密度"xhdpi: 2.0hdpi: 1.5mdpi: 1.0 (baseline)ldpi: 0.75drawable-ldpi、drawable-mdpi、drawable-hdpi 精度分别为低、中(android默认)、高。对应的图片大小为:36×36、48×48、72×72。xxhdpi: 144*144xhdpi:96*96hdpi:72*72mdpi:48*48ldpi:36*36 dp是虚拟像素,在不同的像素密度的设备上会自动适配,比如:在320×480分辨率,像素密度为160,1dp=1px在480×800分辨率,像素密度为240,1dp=1.5px计算公式:1dp*像素密度/160 = 实际像素数drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:(1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480×800),FWVGA (480×854)(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320×480)(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240×320)系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。 ppi的运算方式是:PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数dp:Density-independent pixels,以160PPI屏幕为标准,则1dp=1px,dp和px的换算公式 :dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。 sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。sp 与 px 的换算公式:sp*ppi/160 = px 总结得出:px = dp*ppi/160dp = px / (ppi / 160)px = sp*ppi/160sp = px / (ppi / 160)