`
haking
  • 浏览: 262695 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android中的长度单位

阅读更多

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的计量单位px,in,mm,pt,dp,dip,sp

    Android中的长度单位详解(dp、sp、px、in、pt、mm).pdf

    总算,把Android中要用到各种长度单位,讲清楚了,以前用的时候,总是不清不楚的。现在用得心里有底了。

    Android的单位转换工具类

    一个简单的用于Android的dp、sp和px单位之间的转换工具类

    android 单位换算

    该程序能实现 长度 温度 重量 能量,体积,压力之间的转换 android1.6版本

    android实现单位换算

    android实现简单的单位换算,用Intent实现界面直接的数据传递。

    Android开发EditText属性.txt

     android:maxLength限制显示的文本长度,超出部分不显示。  android:lines设置文本的行数,设置两行就显示两行,即使第二行没有数据。  android:maxLines设置文本的最大显示行数,与width或者layout_width结合...

    Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读.doc

    Android系统中,度量单位是非常重要的一部分,对于开发者来说,了解这些度量单位是非常必要的。在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的三种...

    网易2018校招Android开发工程师笔试卷及答案.pdf

    * 线程是进程的一个实体,可以作为系统独立调度和分派的基本单位。 * 一个进程中多个线程可以并发执行。 * 线程可以通过相互之间协同来完成进程所要完成的任务。 * 线程之间不共享进程中的共享变量和部分环境。 二...

    SwissArmyKnife-android免root兼容所有版本ui调试工具.zip

    所有边距单位都是dp(pt),android中会四舍五入,所有边距都是整数,所以可能跟设计图中有不超过1dp(pt)的误差。宽高选项开启后会看到控件的宽高,单位是dp(pt)图片宽高字体大小字体颜色16进制,ARGB强制图片宽...

    Android开发规范

    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 括号 ...

    Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制(推荐)

    做这个功能是因为开发项目的时候,由于后台接口的一些参数的值的长度有要求,不能超过多少个字符,所以在编辑框中输入的字符是要有限制的。 下面就来看一下demo的实现过程: 首先,在xml控件中放置一个EditText控件...

    Android开发人员不得不收集的代码

    timeSpan2Millis, millis2TimeSpan : 以 unit 为单位的时间长度与毫秒时间戳互转 millis2FitTimeSpan : 毫秒时间戳转合适时间长度 bytes2Bits, bits2Bytes : bytes 与 bits 互转 input2OutputStream, output2...

    A毕业设计:基于android 的测量程序设计

    比如,在长度测量中可以考虑采用加速度传感器获取移动距离。 4. 单位转换:支持不同的测量单位,并提供方便快捷的单位转换功能,让用户可以灵活选择所需的测量单位。 5. 数据保存与分享:允许用户保存测量数据,并...

    Android 中SP与DP的区别实例详解

    1.长度宽度的数值要使用dp作为单位放入dimens.xml文件中 2.字体大小的数值要使用sp作为单位,也放入dimens.xml文件中 然后,就没有然后了,仿佛潜台词就是说,你记住去用就行了. 偶然有一天,当我们阴差阳错地将字体写...

    XamConverter:Xamarin.Forms中使用MVVM架构创建的iOS和Android应用,可转换长度,质量和温度单位

    XamConverter 使用转换长度,质量和温度单位的iOS和Android应用程序 安卓 的iOS

    简单谈谈Android中SP与DP的区别

    从一开始写Android程序,就被... 长度宽度的数值要使用dp作为单位放入dimens.xml文件中 字体大小的数值要使用sp作为单位,也放入dimens.xml文件中 然后,就没有然后了,仿佛潜台词就是说,你记住去用就行了. 偶然有一天,

    A毕业设计:基于android的测量程序设计

    基于Android的测量程序设计可以涉及各种类型的测量应用,包括但不限于长度、温度、重量、时间等方面的测量。以下是设计这类应用时可能涉及的关键步骤和功能: 1. **确定测量类型**:首先需要确定设计的测量类型,...

Global site tag (gtag.js) - Google Analytics