Historically, programmers always designed computer interfaces in terms of pixels. For example, you mightmake a field 300 pixels wide, allow 5 pixels of spacing between columns, and define icons 16-by-16 pixels in size. The problem is that if you run that program on new displays with more and more dots per inch (dpi), the user interface appears smaller and smaller. At some point, it becomes too hard to read. Resolution-independent measurements help solve this problem.
Android supports all the following units:
• px (pixels): Dots on the screen.
• in (inches): Size as measured by a ruler.
• mm (millimeters): Size as measured by a ruler.
• pt (points): 1/72 of an inch.
• dp (density-independent pixels): An abstract unit based on the density of the screen. On a display with 160 dots per inch, 1dp = 1px.
• dip: Synonym for dp, used more often in Google examples.
• sp (scale-independent pixels): Similar to dp but also scaled by the user’s font size preference.
To make your interface scalable to any current and future type of display, I recommend you always use the sp unit for text sizes and the dip unit for everything else. You should also consider using vector graphics instead of bitmaps
如果英文不想看,看下面:
px:是屏幕的像素点
in:英寸
mm:毫米
pt:磅,1/72 英寸
dp:一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px
dip:等同于dp
sp:同dp相似,但还会根据用户的字体大小偏好来缩放。
建议使用sp作为文本的单位,其它用dip
针对dip和px 的关系,做以下概述:
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
apk的资源包中,当屏幕density=240时使用hdpi 标签的资源
当屏幕density=160时,使用mdpi标签的资源
当屏幕density=120时,使用ldpi标签的资源。
不加任何标签的资源是各种分辨率情况下共用的。
布局时尽量使用单位dip,少使用px
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hustpzb/archive/2010/11/20/6023145.aspx
分享到:
相关推荐
一个简单的用于Android的dp、sp和px单位之间的转换工具类
在Android开发中,理解和使用正确的计量单位对于创建适应各种屏幕尺寸和密度的应用至关重要。以下是对Android中几种主要计量单位的详细解释: 1. **px(像素)**:像素是屏幕的最小显示单位,代表显示器上一个点的...
5. **英寸(in)**:英寸是长度单位,1英寸等于2.54厘米。在Android中,1in表示屏幕上的物理尺寸。 `AndroidUnits`工具类通常包含以下功能: 1. **dp转px**:将dp值转换为像素值。例如,`dpToPx(context, dpValue)...
Spinner可以通过Adapter填充预定义的单位列表,如长度、重量、温度等单位。 2. 初始化Intent 在Button的点击事件中,实例化一个Intent对象。Intent的构造函数可以接受当前Activity的Class和目标Activity的Class...
在Android平台上开发一个单位换算应用,涉及到多个方面的技术知识点,包括但不限于用户界面设计、数据处理、数值计算以及Android API的使用。以下是基于标题和描述所涵盖的主要知识点的详细解释: 1. **Android SDK...
在Android开发中,理解并熟练运用不同的长度单位是至关重要的,因为这直接影响到应用界面的布局和用户体验。本文将深入探讨Android中常见的长度单位:dp、sp、px、in、pt以及mm,帮助开发者们更好地理解和应用这些...
"ArcGIS For android 计算长度和面积"的实例程序专注于一个关键的应用场景,即对地图上的几何对象(如线条和多边形)进行测量,以获取它们的长度和面积。这个功能在各种领域都有应用,例如城市规划、土地测绘、环境...
本项目是一个年前的Android应用源码示例,专为学生毕业设计学习而准备,旨在教授如何让TextView根据文本长度自动换行,以适应不同屏幕尺寸和用户需求。 在Android中,TextView默认情况下会自动换行,当一行文本无法...
它代表了一种与设备无关的像素单位,用于表示屏幕上的物理长度。dp的主要优点在于它可以根据设备的屏幕密度进行自动缩放,从而确保元素在不同分辨率的屏幕上具有相同的实际大小。例如,一个定义为100dp的按钮,在...
此应用程序旨在帮助用户方便地进行日常生活或工作中遇到的物理量单位转换,如长度、重量、温度、速度等,为用户提供了一站式的单位换算服务。 一、Android Studio简介 Android Studio是Google推出的一款集成开发...
此外,可以通过`android:scrollbarFadeDuration`属性设定滚动条从出现到消失的动画时间,单位为毫秒。例如,如果希望滚动条在2秒钟后消失,可以这样设置: ```xml android:scrollbarFadeDuration="2000" ... /> ...
"Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读" Android系统中,度量单位是非常重要的一部分,对于开发者来说,了解这些度量单位是非常必要的。在Android系统中,屏幕尺寸、屏幕长宽比、分辨率、密度等...
总的来说,创建一个自定义的Android尺子控件涉及到图形绘制、触摸事件处理、尺寸单位转换等多个技术点。通过这样的实践,开发者不仅可以提升对Android视图系统和绘图API的理解,还能提高解决复杂UI问题的能力。...
px 是 Android 中最基本的长度单位,但它存在一个问题,就是在不同的设备上显示效果可能不同。因为不同的设备有不同的显示效果,例如 HVGA、HVGA 和 QVGA 等,因此使用 px 作为单位可能会导致界面不适合某些设备。 ...
在Android平台上,这样的应用可以帮助用户方便地进行长度、重量、体积、温度等各类计量单位之间的换算。源码通常包含应用程序的所有逻辑和界面设计,对于学习Android开发或者想要定制自己单位换算应用的人来说,这是...
- **结果显示**:将测量的面积以平方米或其他单位显示出来。 4. **API与工具**: - **ArcGIS Android SDK**:提供丰富的地图操作和空间分析接口,如`MapView`、`Graphic`、`GeometryEngine`等。 - **Spatial ...
- **单位**:常用的有sp(用于文本)和dp(用于尺寸)。 - **示例**:`android:textSize="16sp"` #### 6. `android:background` - **功能**:设置背景颜色或图片。 - **格式**:可以使用十六进制表示的颜色值,也...
在Android开发中,理解并掌握dp、px、sp等单位之间的转换是非常重要的,因为它们直接影响到界面元素在不同分辨率和像素密度设备上的显示效果。dp(density-independent pixels)是独立像素,px(pixels)是像素,sp...