Android长度单位详解
来源:互联网 发布:外国人逛淘宝 编辑:程序博客网 时间:2024/05/01 22:09
Android长度单位详解
1、android中主要长度单位:
px:表示屏幕实际的象素。例如,720*480的屏幕在横向有720个象素,在纵向有480个象素。in:英尺。
mm:毫米。
pt:表示一个点,屏幕 的物理尺寸。其实就是手机实际的尺寸大小 如4.0的屏,就这样。
dp/dip:与密码无关的像素,一个基于density的抽象单位,这个和设备硬件有关,通常在开发中设置一些view的宽高推荐用这个,一般情况下,在不同分辨率,都不会有缩放的感觉。在运行时, Android根据使用中的屏幕的实际密度, 透明地处理任何所需dip单位的缩放。
sp:与刻度无关的像素,主要是对字体大小的缩放。
在所有的长度单位中dp/dip、sp使用最多,其它几个基本不怎么使用。
2、dp/dip与px的关系:
HVGA屏density=160;
QVGA屏density=120;
WVGA屏density=240;
WQVGA屏density=120。
density值表示每英寸有多少个显示点,与分辨率是两个概念。
dip到px的转换公式:px = dip * (density / 160)
dp与px转换的工具类:
public class DensityUtil {
public static int dip2px(Context context, float dipValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
}
以480dip*800dip的 WVGA(density=240)为例:
1.当density=120时屏幕实际分辨率为240px*400px (两个点对应一个分辨率)状态栏和标题栏高为19px或者25dip。
横屏时屏幕宽度为400px或者800dip,工作区域高度211px或者455dip;
竖屏时屏幕宽度为240px或者480dip,工作区域高度381px或者775dip。
2.当density=160时屏幕实际分辨率为320px*533px (3个点对应两个分辨率)状态栏和标题栏高为25px或者25dip。
横屏是屏幕宽度533px 或者800dip,工作区域高度295px或者455dip;
竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip。
3.当density=240时屏幕实际分辨率为480px*800px (一个点对于一个分辨率)状态栏和标题栏高为38px或者25dip。
横屏是屏幕宽度800px 或者800dip,工作区域高度442px或者455dip;
竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip。
在Android的应用包apk中,系统会根据各个设备的具体情况引用相应的资源文件(注:不加任何标签的资源是各种分辨率情况下共用的):
当屏幕density=240时,使用hdpi标签的资源;
当屏幕density=160时,使用mdpi标签的资源;
当屏幕density=120时,使用ldpi标签的资源。
提示:大家在布局时中最好都用dip。
强烈推荐:http://www.cnblogs.com/olvo/archive/2012/04/17/2453203.html
- android长度单位详解
- Android长度单位详解
- Android长度单位详解
- Android中的长度单位详解
- Android中的单位长度详解
- Android中的长度单位详解
- Android中的长度单位详解
- Android中长度单位详解
- Android中的长度单位详解
- Android中的长度单位详解
- Android中的长度单位详解
- Android 中的长度单位详解
- 【Android开发】Android中的长度单位详解及使用建议
- Android长度单位
- android长度单位解释
- android长度单位
- Android中长度单位
- Android 长度单位
- ARM汇编实例1
- 黑马程序员--字符串String总结
- Linux 下使用mysql 报错!!
- 创业36条军规
- uva 140 Bandwidth
- Android长度单位详解
- java初学有关环境变量classpayh和path
- 黑马程序员--异常与异常的处理
- rtmp complex handshake,变更的握手,支持h264/aac
- 线程知识总结(1)
- C++ Constructors
- Guid 唯一标识
- XML-基础(介绍、语法、dtd约束)
- 黑马程序员-关于三种继承方式