Android的px、dip、sp的区别
一、 概述
我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼。
在Android中支持的描述大小区域的类型有以下几种。
px(pixels)——像素:不同的设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
dip(device independent pixels)——设备独立像素:这个和设备硬件有关,一般哦我们为了支持WCGA、HVGA和QVGA推荐使用这个,不依赖于像素。等同于dp。
sp(scaled pixels—best for text size)——带比例的像素。
pt(points)——磅:1pt = 1/72英寸
in(inches)——英寸
mm(millimeters)——毫米
二、 详解
sp由于是放大像素,主要是用于字体显示,由此根据google的建议,TextView的字体大小最好用sp做单位,而且查看TextView的源码可知Android默认使用水平作为字号单位。
在Android中最常用到的还是px和dip。但是这两个之间到底有什么区别呢?
在HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120 density值表示每英寸有多少个显示点,与分辨率是两个概念。不同density下屏幕分辨率信息,以480dip*800dip的 WVGA(density=240)为例。
density=120时 屏幕实际分辨率为240px*400px (两个点对应一个分辨率)
状态栏和标题栏高各19px或者25dip
横屏是屏幕宽度400px 或者800dip,工作区域高度211px或者480dip
竖屏时屏幕宽度240px或者480dip,工作区域高度381px或者775dip
density=160时 屏幕实际分辨率为320px*533px (3个点对应两个分辨率)
状态栏和标题栏高个25px或者25dip
横屏是屏幕宽度533px 或者800dip,工作区域高度295px或者480dip
竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip
density=240时 屏幕实际分辨率为480px*800px (一个点对于一个分辨率)
状态栏和标题栏高个38px或者25dip
横屏是屏幕宽度800px 或者800dip,工作区域高度442px或者480dip
竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip
apk的资源包中,当屏幕density=240时使用hdpi 标签的资源
当屏幕density=160时,使用mdpi标签的资源
当屏幕density=120时,使用ldpi标签的资源。
不加任何标签的资源是各种分辨率情况下共用的。
分享到:
相关推荐
dip dp px sp区别 dip dp px sp区别 dip dp px sp区别
NULL 博文链接:https://1307111376.iteye.com/blog/1986752
描述android的dip dp px dp等单位及其转换关系
Android中显示单位px和dip以及sp的区别
简单的比较android各个单位的小程序
android开发之dip,dp与px像素之间的转换工具,博文介绍:http://blog.csdn.net/qq_21376985/article/details/51704703
你还在为开发Android的像素而烦恼吗?赶快下载行动起来吧!里面说的非常详细!!
Android的计量单位px,in,mm,pt,dp,dip,sp Android的计量单位px,in,mm,pt,dp,dip,sp
在屏幕密度为160的显示屏上,1dip=1px,有时候可能你的屏幕分辨率很大如480*800,但是屏幕密度没有正确设置比如说还是160,那么这个时候凡是使用dip的都会显示异常,基本都是显示过小。 dip的换算: dip(value)=...
本篇文章是对Android中dip、dp、sp、pt和px的区别进行了详细的分析介绍,需要的朋友参考下
本篇文章是对Android中dip,px,pt,sp的区别进行了详细的分析介绍,需要的朋友参考下
android:width="1.0px" android:color="#33B5E5" /> android:bottomLeftRadius="10dip" android:bottomRightRadius="10dip" android:topLeftRadius="10dip" android:topRightRadius="10dip" /> </shape>
android sp dp px dip pt in mm 等单位
android:width设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layout_width的区别看这里。 android:maxWidth设置文本区域的最大宽度 android:minWidth设置文本区域的最小宽度 android...
RectF oval = new RectF(mIvIcon.getLeft()+UIUtils.dip2Px(5), mIvIcon.getTop()+UIUtils.dip2Px(5), mIvIcon.getRight()-UIUtils.dip2Px(5), mIvIcon.getBottom()-UIUtils.dip2Px(5)); float startAngle = -90...
mWeightRulerView.setParam(DrawUtil.dip2px(10), DrawUtil.dip2px(32), DrawUtil.dip2px(24), DrawUtil.dip2px(14), DrawUtil.dip2px(9), DrawUtil.dip2px(12)); mWeightRulerView.initViewParam(mWeight, 20.0f,...