px (pixels)像素
对应屏幕上的实际像素点。一般HVGA代表320x480像素,这个用的比较多。
dp (device independent pixels)设备独立像素,也称dip
逻辑长度单位,在 160 dpi 屏幕上,1dp=1px=1/160英寸。随着密度变化,对应的像素数量也变化,但并没有直接的变化比例。这个和设备硬件有关,一般为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
sp (scaled pixels — best for text size)比例像素
与dp类似,但是可以根据用户的字体大小首选项进行缩放。主要处理字体的大小,可以根据系统的字体自适应。
px和dp的换算公式:
px = dp * (density/160)
density 是屏幕密度,表示每英寸有多少个显示点,与分辨率是两个不同的概念.
例如,
在density=240,800px*480px屏幕上,320dp的宽度对应的像素是480px;
在density=160,800px*480px屏幕上,320dp的宽度对应的像素是320px,
所以,
使用dp(sp)能够保证显示质量,但不保证显示尺寸比例;
相反,使用px能够保证显示尺寸比例,但不保证显示效果。
注意:在160dpi屏幕上,px和dp是等价的。
android中的不同资源规格对应的屏幕密度:
hdpi = 240 , 状态栏和标题栏高各19px或者25dip
mdpi = 160 , 状态栏和标题栏高各25px或者25dip
ldpi = 120 , 状态栏和标题栏高各38px或者25dip
系统会根据设备的屏幕密度来选择hdpi, mdpi, ldpi相应的资源,如果没有加标签,则默认为mdpi。
图片资源的放置位置直接影响图片最终显示的大小:
例如drawable-hdpi没有图片,假如现在有一张图片10x10的a.png放在drawable-mdpi,设备屏幕密度为240dpi。
如果在layout描述该图片时使用wrap_content,那么最后图片显示的大小就变成15x15。这是因为系统在drawable-hdpii找不到图片,就在drawable-mdpi找,找到a.png后,根据密度不同,系统自动对图片进行调整,所以就变成了15x15。假如drawable-hdpi有a.png,则不加处理根据其图片大小10x10显示。当然,如果在layout描述该图片时声明宽高都为10px,那么系统无论在什么文件夹下找到图片一般不会影响图片的显示大小(在SeekBar等容器就算指定大小也有可能改变)。
显示效果的影响因素:
综上,显示效果的影响因素有:屏幕尺寸、屏幕密度、分辨率。
为了适应不同的设备,要注意drawable和layout资源。
例如,
在屏幕大小相同,密度不同的情况下,提供不同的drawable资源;
在屏幕大小不同,分辨率相同的情况下,提供不同的layout资源。
关于VGA (640 * 480)
FWVGA(Full Wide VGA) = 854 * 480
WVGA (Wide VGA) = 800 * 480
HVGA (Half VGA) = 320 * 480
QVGA (Quarter VGA) = 240 * 320
WXGA(Wide extra VGA):800*1280
实用对照表:
屏幕 宽度 高度 尺寸 大小 密度
Type (Pixels) (Pixels) Range (inches) Size Group
QVGA 240 320 2.6 - 3.0 Small Low
WQVGA 240 400 3.2 - 3.5 Normal Low
FWQVGA 240 432 3.5 - 3.8 Normal Low
HVGA 320 480 3.0 - 3.5 Normal Medium
WVGA 480 800 3.3 - 4.0 Normal High
FWVGA 480 854 3.5 - 4.0 Normal High
WVGA 480 800 4.8 - 5.5 Large Medium
FWVGA 480 854 5.0 - 5.8 Large Medium
下面几个不太常用:
in (inches),英寸
mm (millimeters),毫米
pt (points)点,1/72英寸
分享到:
相关推荐
Android的计量单位px,in,mm,pt,dp,dip,sp Android的计量单位px,in,mm,pt,dp,dip,sp
总算,把Android中要用到各种长度单位,讲清楚了,以前用的时候,总是不清不楚的。现在用得心里有底了。
一个简单的用于Android的dp、sp和px单位之间的转换工具类
该程序能实现 长度 温度 重量 能量,体积,压力之间的转换 android1.6版本
android实现简单的单位换算,用Intent实现界面直接的数据传递。
android:maxLength限制显示的文本长度,超出部分不显示。 android:lines设置文本的行数,设置两行就显示两行,即使第二行没有数据。 android:maxLines设置文本的最大显示行数,与width或者layout_width结合...
Android系统中,度量单位是非常重要的一部分,对于开发者来说,了解这些度量单位是非常必要的。在Android系统中,屏幕尺寸、屏幕长宽比、分辨率、密度等概念都是非常重要的。 首先,屏幕尺寸是指屏幕的物理尺寸,以...
2.1.3 常用的长度单位解析: 21 2.2 线性布局 22 2.3 表格布局 22 2.4 相对布局 23 2.5 基本界面组件 23 2、Activity生命周期及其实例分析 24 1.1 Avtivity介绍 24 1.2 Activity的生命周期 25 1.2.1 Activity的三种...
* 线程是进程的一个实体,可以作为系统独立调度和分派的基本单位。 * 一个进程中多个线程可以并发执行。 * 线程可以通过相互之间协同来完成进程所要完成的任务。 * 线程之间不共享进程中的共享变量和部分环境。 二...
所有边距单位都是dp(pt),android中会四舍五入,所有边距都是整数,所以可能跟设计图中有不超过1dp(pt)的误差。宽高选项开启后会看到控件的宽高,单位是dp(pt)图片宽高字体大小字体颜色16进制,ARGB强制图片宽...
Android内部开发规范,编码规范 目录 1 介绍 5 1.1 目的 5 1.2 术语和定义 5 2 文件组织 5 2.1 JAVA包和源文件 5 2.1.1 开头注释 5 2.1.2 包和引入语句 6 2.1.3 类和接口声明 6 3 缩进排版 7 3.1 行长度 7 3.2 括号 ...
做这个功能是因为开发项目的时候,由于后台接口的一些参数的值的长度有要求,不能超过多少个字符,所以在编辑框中输入的字符是要有限制的。 下面就来看一下demo的实现过程: 首先,在xml控件中放置一个EditText控件...
timeSpan2Millis, millis2TimeSpan : 以 unit 为单位的时间长度与毫秒时间戳互转 millis2FitTimeSpan : 毫秒时间戳转合适时间长度 bytes2Bits, bits2Bytes : bytes 与 bits 互转 input2OutputStream, output2...
比如,在长度测量中可以考虑采用加速度传感器获取移动距离。 4. 单位转换:支持不同的测量单位,并提供方便快捷的单位转换功能,让用户可以灵活选择所需的测量单位。 5. 数据保存与分享:允许用户保存测量数据,并...
1.长度宽度的数值要使用dp作为单位放入dimens.xml文件中 2.字体大小的数值要使用sp作为单位,也放入dimens.xml文件中 然后,就没有然后了,仿佛潜台词就是说,你记住去用就行了. 偶然有一天,当我们阴差阳错地将字体写...
XamConverter 使用转换长度,质量和温度单位的iOS和Android应用程序 安卓 的iOS
从一开始写Android程序,就被... 长度宽度的数值要使用dp作为单位放入dimens.xml文件中 字体大小的数值要使用sp作为单位,也放入dimens.xml文件中 然后,就没有然后了,仿佛潜台词就是说,你记住去用就行了. 偶然有一天,
基于Android的测量程序设计可以涉及各种类型的测量应用,包括但不限于长度、温度、重量、时间等方面的测量。以下是设计这类应用时可能涉及的关键步骤和功能: 1. **确定测量类型**:首先需要确定设计的测量类型,...