Android中dip(dp)、px、sp之间单位转换
2014-12-26 14:16
204 查看
今天心情好,学习动力足,再来几篇。
我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼。
在Android中支持的描述大小区域的类型有以下几种。
px(pixels)——像素:不同的设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
dip(device independent pixels)——设备独立像素:这个和设备硬件有关,一般哦我们为了支持WCGA、HVGA和QVGA推荐使用这个,不依赖于像素。等同于dp。
sp(scaled pixels—best for text size)——带比例的像素。
在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
我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼。
在Android中支持的描述大小区域的类型有以下几种。
px(pixels)——像素:不同的设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
dip(device independent pixels)——设备独立像素:这个和设备硬件有关,一般哦我们为了支持WCGA、HVGA和QVGA推荐使用这个,不依赖于像素。等同于dp。
sp(scaled pixels—best for text size)——带比例的像素。
在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
<span style="font-size:14px;">DisplayMetrics metrics = context.getResources().getDisplayMetrics(); public static float sDensity = metrics.density; public static int dip2px(float dipVlue) { return (int) (dipVlue * sDensity + 0.5f); } public static int px2dip(float pxValue) { final float scale = sDensity; return (int) (pxValue / scale + 0.5f); } public static int sp2px(float spValue) { final float scale = sDensity; return (int) (scale * spValue); } public static int px2sp(float pxValue) { final float scale = sDensity; return (int) (pxValue / scale); } </span>
相关文章推荐
- Android中dip(dp)与px之间单位转换
- Android中dip(dp)与px之间单位转换
- Android分辨率中dip, dp, px, sp之间的区别
- Android中dip(dp)与px之间单位转换
- Android中dip(dp)与px之间单位转换
- 【转】Android中dip(dp)与px之间单位转换
- Android中dip, dp, px, sp之间的区别
- Android中 dip, dp, px, sp之间的区别
- Android中dip(dp)与px之间单位转换
- Android中dp、dip、px、sp之间的区别
- Android中常见的单位 dip, dp, px, sp之间的区别
- Android 边用边学 之 px,in,mm,pt,dp,dip,sp 之间的换算公式以及区别
- Android中dip(dp)与px之间单位转换
- Android中dip(dp)与px之间单位转换
- Android中dip(dp)与px之间单位转换
- Android中dip(dp)与px之间单位转换
- Android中dip, dp, px,pt, sp之间的区别:
- android UI中常用的几个概念:dp,dip,dpi,sp,px,pt,ppi及它们之间的关联
- Android的计量单位px,in,mm,pt,dp,dip,sp
- Android的计量单位px,in,mm,pt,dp,dip,sp