`
haking
  • 浏览: 264679 次
  • 性别: 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开发中,理解和使用正确的计量单位对于创建适应各种屏幕尺寸和密度的应用至关重要。以下是对Android中几种主要计量单位的详细解释: 1. **px(像素)**:像素是屏幕的最小显示单位,代表显示器上一个点的...

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

    在Android开发中,理解并熟练运用不同的长度单位是至关重要的,因为这直接影响到应用界面的布局和用户体验。本文将深入探讨Android中常见的长度单位:dp、sp、px、in、pt以及mm,帮助开发者们更好地理解和应用这些...

    Android中显示单位px和dip以及sp的区别.doc

    px 是 Android 中最基本的长度单位,但它存在一个问题,就是在不同的设备上显示效果可能不同。因为不同的设备有不同的显示效果,例如 HVGA、HVGA 和 QVGA 等,因此使用 px 作为单位可能会导致界面不适合某些设备。 ...

    Android的单位转换工具类

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

    android 单位换算

    在Android平台上开发一个单位换算应用,涉及到多个方面的技术知识点,包括但不限于用户界面设计、数据处理、数值计算以及Android API的使用。以下是基于标题和描述所涵盖的主要知识点的详细解释: 1. **Android SDK...

    ArcGIS For android 计算长度和面积

    "ArcGIS For android 计算长度和面积"的实例程序专注于一个关键的应用场景,即对地图上的几何对象(如线条和多边形)进行测量,以获取它们的长度和面积。这个功能在各种领域都有应用,例如城市规划、土地测绘、环境...

    android实现单位换算

    在Android开发中,实现单位换算是一个常见的需求,可以用于应用程序如计算器、转换工具等。本教程将重点讲解如何在Android环境中使用Intent实现单位换算的功能,并通过数据传递在不同的Activity之间进行交互。 首先...

    Android-AndroidUnits用于在不同Android显示单位之间转换的工具类

    5. **英寸(in)**:英寸是长度单位,1英寸等于2.54厘米。在Android中,1in表示屏幕上的物理尺寸。 `AndroidUnits`工具类通常包含以下功能: 1. **dp转px**:将dp值转换为像素值。例如,`dpToPx(context, dpValue)...

    Android textView根据长度自动换行-IT计算机-毕业设计.zip

    本项目是一个年前的Android应用源码示例,专为学生毕业设计学习而准备,旨在教授如何让TextView根据文本长度自动换行,以适应不同屏幕尺寸和用户需求。 在Android中,TextView默认情况下会自动换行,当一行文本无法...

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

    Android系统中,度量单位是非常重要的一部分,对于开发者来说,了解这些度量单位是非常必要的。在Android系统中,屏幕尺寸、屏幕长宽比、分辨率、密度等概念都是非常重要的。 首先,屏幕尺寸是指屏幕的物理尺寸,以...

    android布局单位sp,dp,pt,px的区别

    在Android开发中,为了确保应用在不同屏幕尺寸和密度下的适应性和一致性,使用了多种布局单位,其中最为常见的包括sp、dp(或dip)、pt和px。这些单位各有其特性和应用场景,理解它们之间的差异对于创建响应式和用户...

    Android TextView实现垂直滚动效果的方法

    在Android开发中,当需要在一个TextView中展示大量文本,而屏幕空间有限时,可以使用TextView的垂直滚动功能来实现文本的连续显示。本篇文章将详细讲解如何在Android中实现TextView的垂直滚动效果。 首先,要开启...

    Android-android自定义尺子

    在Android开发中,自定义视图是实现独特用户体验和创新设计的重要手段。"Android-android自定义尺子"项目就是这样一个示例,它展示了如何在Android应用中创建一个自定义的尺子控件。这个控件可以用于教育、设计或者...

    Android-Unit-Converter:Android单位换算应用程序。 使用Android Studio IDE开发

    此应用程序旨在帮助用户方便地进行日常生活或工作中遇到的物理量单位转换,如长度、重量、温度、速度等,为用户提供了一站式的单位换算服务。 一、Android Studio简介 Android Studio是Google推出的一款集成开发...

    android中main.xml中属性中文详解

    `android:fadingEdgeLength`则指定渐变边框的长度,以像素为单位。 `android:fitsSystemWindows`属性在调整布局时考虑系统窗口,如状态栏或导航栏,确保布局不会被这些系统元素遮挡。这在全屏应用或沉浸式设计中尤...

    跑马灯__android

    跑马灯效果在Android开发中通常指的是TextView的滚动效果,这是一种常见的UI动态效果,用于显示超过屏幕宽度的文本。在Android中实现跑马灯效果主要涉及到`android.widget_marquee`属性和`TextView`的设置。下面我们...

    Arcgis For Android 距离、面积测量(手动打点、自动轨迹)

    在“ArcGIS for Android 距离、面积测量(手动打点、自动轨迹)”这个主题中,我们将深入探讨如何利用ArcGIS API实现距离和面积的测量功能,包括手动打点和自动轨迹测量。 1. **手动打点测量距离**: - **添加地图...

    android布局

    Android应用程序开发过程中,布局设计是至关重要的环节之一。良好的布局不仅能够提升应用的用户体验,还能让开发者更高效地管理界面元素。本文将深入探讨Android布局中的关键属性及其应用场景。 #### 标题:Android...

Global site tag (gtag.js) - Google Analytics