pixels) 设备独立像素 与设备有关系 对角线每英寸的像素点的个数 px 像素,pixel的缩写。...sp单位除了受屏幕密度影响外,还受到用户的字体大小影响,通常情况下,建议使用sp来跟随用户字体大小设置。...screens. */ public static final int DENSITY_LOW = 120; /** * Standard quantized DPI...我们可以看到注释:也就是说当手机dpi是120的时候会加载ldpi下的资源,160的时候会加载mhdpi下的资源,以此类推…但是我们在开发中可能并不会真的要建立这6个资源文件夹,因为这6套资源图片文件所占的容量大小还是不可小觑的...设计一套UI图和切图,而苦逼的Android开发就硬着眉头上吧。
移动应用的界面设计画布尺寸设计多大(特别是Android)、图标和字体大小怎么定、需要设计多套设计稿么、如何切图以配合开发的实现?...为了简单起见,Android把屏幕密度分为了四个广义的大小:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi) 像素= DP * ( DPI / 160 ) 例如,在一个240dpi...* sp:Scale-independentpixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。...另外,每个UI元素之间的空白通常是8dp 。...例外情况是两个标题样式,在最小、小和中等设置时都使用相同字体大小、行间距和字间距。 – 在最小的三种文字大小中,字间距相对宽阔;在最大的三种文字大小中,字间距相对紧密。
sp:android 开发中通常表示字体大小。...dip:设备独立像素,不同设备有不同的显示效果,与屏幕密度有关,而屏幕密度又和设备硬件有关,在某种条件下 ,比如屏幕密度为160,那么1dip = 1px。...注:屏幕密度:在屏幕密度中,HVGA屏的密度为160,QVGA屏的密度为120,WVGA屏的密度为240,WQVGA屏的密度为120。其中密度值表示每英寸有多少个显示点和屏幕分辨率是两个概念。...当然dp和px也是有换算关系的: 如下图,注:此图是之前查看别人的博客时截取的,已忘记出处,还望见谅。 ? 问题二:Drawable和Drawable-dip 和 mipmap-dpi关系与区别?...drawable-dip和mipmap-dpi区别? ? 在之后转为Studio开发之后才出现了mipmap-dpi文件夹,其实mipmap文件夹和drawable文件夹一样都可以放图片资源。
对于适配各种尺寸的屏幕而苦恼;出现一个新的机型而修改这数不尽的dimens以及layout;为了UI给的奇葩尺寸的设计图而绞尽奶汁计算距离。...和dpi的关系为 density = dpi/160。...**dp **: 即dip,设备独立像素,device independent pixels的缩写。dp = density * px 。...**sp **: 和dp很类似,一般用来设置字体大小,和dp的区别是它可以根据用户的字体大小偏好来缩放。...2、切图方面: 长宽最好是3的倍数(根据android的推荐logo图标的大小是48(mdpi),72(hdpi),96(xhdpi)得出的最小公约数)。 长宽最好是偶数。
Android 将所有屏幕密度分组为六种通用密度 屏幕像素密度 ldpi mdpi hdpi xhdpi xxhdpi xxxhdpi 描述 低密度屏幕 中等密度 高密度屏幕 超高密度屏幕 - - 约为 ~120dpi...密度无关像素 (dp) 在定义 UI 布局时应使用的虚拟像素单位,用于以密度无关方式表示布局维度或位置。...在定义应用的 UI 时应始终使用 dp 单位 ,以确保在不同密度的屏幕上正常显示 UI。...支持每种密度的 位图可绘制对象的相对大小 适配方案 密度独立性 应用显示在密度不同的屏幕上时,如果它保持用户界面元素的物理尺寸(从 用户的视角),便可实现“密度独立性” 。...Android 系统可帮助您的应用以两种方式实现密度独立性: 系统根据当前屏幕密度扩展 dp 单位数 系统在必要时可根据当前屏幕密度将可绘制对象资源扩展到适当的大小 nodpi:它可用于您不希望缩放以匹配设备密度的位图资源
举个例子:比如UI设计稿总宽度为360dp,这里有两台不同尺寸分辨率的设备: 设备1:分辨率1080x1920,dpi为480,正常情况下计算density=dpi/160=480/160=3,此时屏幕总宽度...dp=px/density=1080/3=360; 设备2:分辨率1440x2560,dpi为560,正常情况下计算desity=dpi/160=560/160=3.5,此时屏幕总宽度dp=px/density...= 1440/360 = 4,此时屏幕总宽度dp=px/density=1440/4=360; 通过对比可以看出,修改density值,确实是能确保不同分辨率设备总宽度值始终是360dp,这样就能保证UI...今日头条适配方案缺点 1、只需要修改一次 density,项目中的所有地方都会自动适配,这个看似解放了双手,减少了很多操作,但是实际上反映了一个缺点,那就是只能一刀切的将整个项目进行适配,但适配范围是不可控的...4、测试布局文件非常的简单,只设置了图片,为了突出跟今日头条适配方案测试结果不同,这里设置图片宽高为120x120(dp),测试布局如下: <?
Android UI设计长度单位有 px :是屏幕的像素点 in :英寸 mm :毫米 pt :磅,1/72 英寸 dp :一个基于density的抽象单位,如果一个...160dpi的屏幕,1dp=1px dip :Density independent pixels ,设备无关像素,等同于dp sp :同dp相似,但还会根据用户的字体大小偏好来缩放。...apk的资源包中,当屏幕density=240时使用hdpi标签的资源 当屏幕density=160时,使用mdpi标签的资源 当屏幕density=120时,使用ldpi标签的资源。...float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5) int densityDpi = metric.densityDpi; // 屏幕密度DPI...(120 / 160 / 240) 参考链接 android中像素单位dp、px、pt、sp的比较
我们直接参考下面这个表格就知道了: dpi范围 密度 0dpi ~ 120dpi ldpi 120dpi ~ 160dpi mdpi 160dpi ~ 240dpi hdpi 240dpi ~ 320dpi...到目前为止一切都挺顺利的,不是吗?...首先解释一下图片为什么会被放大,当我们使用资源id来去引用一张图片时,Android会使用一些规则来去帮我们匹配最适合的图片。什么叫最适合的图片?...因此,当我引用android_logo这张图时,如果drawable-xxhdpi文件夹下有这张图就会优先被使用,在这种情况下,图片是不会被缩放的。...还是看一下刚才的 dpi范围-密度 表格: dpi范围 密度 0dpi ~ 120dpi ldpi 120dpi ~ 160dpi mdpi 160dpi ~ 240dpi hdpi 240dpi
当我在 2005 年左右开始研究 Web 的东西时,有两种非常流行的正文字体样式: 10px Verdana; 11px Arial。...几年后,像素变小了,屏幕通常在 90-120ppi 的范围内,而大多数 iPhone 的分辨率为 160ppi 。...Jeremy 使用 CSS锁 根据视口宽度在两个边界之间更改字体大小:100% 和 250%。320像素时(使用默认浏览器设置)的字体大小为 16px。...我在阅读时有一定程度的注意力不足,当我尝试滚动阅读时,此设置消除了很多视觉环境;我通常会尝试通过选择我正在阅读的所有其他段落来解决注意力不足的问题,但是当设计一次只显示一个或两个段落时,这没有帮助。...特别是硬件供应商更有兴趣销售针对视频分辨率(1080p、4K)进行优化的屏幕,即使它会让整个 UI 变得非常小。 从理论上讲,浏览器制造商应该能够改变 16px 的默认字体大小以适应现代设备。
在学习 Android UI 开发的初期,经常被一些常用概念如 dp、sp 和它们与 px 的换算等虐,要避免被虐,最好的方法当然是知其所以然,再见到它们就胸中有料心不慌了。...sp(Scale-independent Pixels) 基于首选字体大小的缩放像素。 与 dp 类似,但是会根据用户的首选字体大小缩放。 pt(Points) 1/72 英寸。...developer.android.com/guide/practices/screens_support.html#dips-pels 为了简单起见,Android 将屏幕密度概括为 6 种: ldpi(low) ~120dpi...mdpi(medium) ~160dpi hdpi(high) ~240dpi xhdpi(extra-high) ~320dpi xxhdpi(extra-extra-high) ~480dpi xxxhdpi...xxhdpi,Android 在内部进行 dp 到 px 的换算时将采用 480dpi 而非 445dpi。
举个例子,在DPI为240的屏幕上,1个DIP等于1.5个物理像素。我们强烈推荐你用DIP来定义你程序的界面布局,因为这样可以保证你的UI在各种分辨率的屏幕上都可以正常显示。...针对于字体,Android设计了sp这个单位,这个于dp的不同在于,字体大小在dp的基础上,可以根据用户的偏好设置,相应调整字体大小,所以是scale的。 但是!...Thus on a 160dpi screen this density value will be 1; on a 120 dpi screen it would be .75; etc....然而,当我试图获取某些机器的这两个值的时候却与我手动计算所得到的值完全不同!...我们都知道是不推荐用pt,in,mm这种单位的,这是否也是一个方面) 至此关于屏幕的问题大体说完,然后就是提供的资源问题,当我们设置了一个界面元素的的大小后,对于不是标准dpi的机器上就要进行缩放,那么对于绘制的矢量元素
刚接触移动应用的界面设计,最先跳入脑海的疑问是:画布尺寸设计多大(特别是Android)、图标和字体大小怎么定、需要设计多套设计稿么、如何切图以配合开发的实现?...(xhdpi模式),480 x 800 的手机很可能接近 240 dpi (hdpi模式),而320 x 480 的手机则很接近 160 dpi(mdpi模式)。...sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。...另外,每个UI元素之间的空白通常是8dp 。...例外情况是两个标题样式,在最小、小和中等设置时都使用相同字体大小、行间距和字间距。 – 在最小的三种文字大小中,字间距相对宽阔;在最大的三种文字大小中,字间距相对紧密。
密度无关像素 (dp) 在定义 UI 布局时应使用的虚拟像素单位,用于以密度无关方式表示布局维度 或位置。...在定义应用的 UI 时应始终使用 dp 单位 ,以确保在不同密度的屏幕上正常显示 UI。...六种通用的密度: ldpi(低)~120dpi mdpi(中)~160dpi hdpi(高)~240dpi xhdpi(超高)~320dpi xxhdpi(超超高)~480dpi xxxhdpi(超超超高...)~640dpi 密度独立性 大多数情况下,确保应用中的屏幕独立性很简单,只需以适当的密度独立像素(dp 单位)或 "wrap_content" 指定所有 布局尺寸值。...1080/(420/160)=411.428 纵向: 1920/(420/160)=731.428 更改以上的代码: 96-->(411.428/4)=103 68-->(731.428-250)/4=120
(2) Android设备相关名词 密度(density) : 在物理宽高范围内显示的像素数量, 同样屏幕大小的手机, 低密度显示的像素点少, 高密度显示的像素点多; -- 资源分类 :固定像素宽高的UI...资源(图片资源的宽高是按照像素确定的), 在低密度显得很大, 在高密度显示的很小, 因此为了使UI组件显示大致统一(不是绝对), 美工需要一种资源设置成4份不同像素的资源, 放到对应目录中去; 设备独立像素...计算公式: px = dip * density / 160; 当密度为160的时候, 屏幕的 px == dip; -- Google建议: 在布局文件设置组件属性的时候, 尽量使用dip作为单位, 字体大小统一使用... 归一化密度 : 在Android中从DisplayMetrics中获取的density 和 densityDpi 就是归一化密度; -- 固定值 : 归一化的密度是有固定值的, 这个固定值是 120dpi...时 : 使用drawable-ldpi目录中的资源; -- 密度为160时 : 使用drawable-mdpi目录中的资源; -- 密度为240时 : 使用drawable-hdpi目录中的资源; --
dip(device independent pixels)——设备独立像素:这个和设备硬件有关,一般我们为了支持WCGA、HVGA和QVGA推荐使用这个,不依赖于像素。等同于dp。...pt(points)——磅:是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用; 在 Android 中,1pt 大概等于2.22sp以上供参考,如果 UI 能够以sp为单位提供设计是最好的...这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能会小到难以看清内容。 到底px和dip有什么区别呢? dip !...在Density是160的设备上,比如用AVDManager创建的默认模拟器,dip和px是一样的但是如果同样的代码,换到不同Density的设备上,比如换到一个Density是240的设备上,dip和...当屏幕density=240时使用hdpi标签的资源 当屏幕density=160时使用mdpi标签的资源 当屏幕density=120时使用ldpi标签的资源。
测试关注点 px在实际项目中的应用场景,例如页面中线条的宽细度、字体大小,具体实例如下图所示。 ? 2....,Android系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它们对应的dp到px的系数分别为0.75、1、1.5和2,这个系数乘以dp长度就是像素数...例如界面上有一个长度为“80dp”的图片,那么它在240dpi的手机上实际显示为80x1.5=120px,在320dpi的手机上实际显示为80x2=160px。...如果你拿这两部手机放在一起对比,会发现这个图片的物理尺寸“差不多”,实现了“密度独立性”,使用dp作为单位的效果可见下图。 ?...(adb shell wm density可查看dpi) ③ 在定义距离、大小等时,为实现“密度独立性”,需关注度量单位应为dp,并可实现动态的px转换。
Android UI 切图命名规范、标注规范及单位描述 很多UI设计师做APP切图都会有两套,一套是Android的,一套是IOS的。IOS我这边暂不作讲解,因为我本人也不是开发IOS。...(PS:本人有时拿到UI切图,看到名称确实是不知道这个图是用来干嘛和放在哪里的,还得跑过去问UI。。所以,一个好的命名规则可以让我们开发节省不少的时间。)...尺寸字体颜色标注 尺寸:1、画布大小定位 720 x 1280 或 1080 x 1920,72 dpi等; 2、只使用偶数单位的尺寸,比如 96 px 的列表项高度,16 px 的边距,64 px...的图标边长; 3、只使用偶数单位 24 pt,28 pt,36 pt等字体大小; 4、设计完成以后,所有尺寸的 px 值除以 2(需要约定的倍数) 作为 dp 数值交给工程师; 5、所有字体的...自动切图工具推荐 摹客iDoc 在这里向UI设计师,前端推荐一款好用的国产自动切图神器-摹客iDoc,一款更快更简单的产品协作设计平台,智能标注、一键切图、多样批注、交互原型、全貌画板、团队管理,从产品到开发
当dpi=160时1px=1dp,也就是说所有dp和px的转换都是基于mdpi而言的。...因为在每部手机出厂时都会为该手机设置屏幕密度,若其屏幕的实际密度是440dpi那么就会将其屏幕密度设置为与之接近的480dpi;如果实际密度为325dpi那么就会将其屏幕密度设置为与之接近的320dpi...其实说白了就是X横轴方向的dpi. 一般给的图都是以像素为单位的. 例如1920*1080 5寸屏的我们如果有1pt = 1px. 则如果需要120px的宽度, 我们不用想写成120pt就OK了....预览时选择这个设备即可。...该方案只考虑x轴方向, 毋需或者暂不考虑y轴方向 如何选择基准设备呢, 这当然根据UI给的切图而定, 但现在的UI一般都是以苹果设备为原型而定.
dp与px的转换 因为ui设计师给你的设计图是以px为单位的,Android开发则是使用dp作为单位的,那么我们需要进行转换: 密度类型 代表的分辨率(px) 屏幕密度(dpi) 换算(px/dp)...320x480)为基准:1dp=1px 独立比例像素 含义:scale-independent pixel,叫sp或sip 单位:sp Android开发时用此单位设置文字大小,可根据字体大小首选项进行缩放...试想一下这么一个场景: 为4.3寸屏幕准备的UI设计图,运行在5.0寸的屏幕上,很可能在右侧和下侧存在大量的空白;而5.0寸的UI设计图运行到4.3寸的设备上,很可能显示不下。...(即屏幕分辨率为320x480)为基准:1dp=1px 独立比例像素 含义:scale-independent pixel,叫sp或sip 单位:sp Android开发时用此单位设置文字大小,可根据用户的偏好文字大小...,所以选择xhdpi作为唯一一套dpi图片资源,可以让设计师不用专门为Android端切图,直接把iPhone的那一套切好的图片资源放入drawable-xhdpi文件夹里就好,这样大大减少的设计师的工作量
领取专属 10元无门槛券
手把手带您无忧上云