android中像素单位dp、px、pt、sp的比较
dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
由此,根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看TextView的源码可知 Android 默认使用 sp 作为字号单位。
还有, google代码里边所用的单位都是以px为默认单位的.
apk的资源包中,当屏幕density=240时使用hdpi标签的资源
当屏幕density=160时,使用mdpi标签的资源
当屏幕density=120时,使用ldpi标签的资源。
在每英寸160点的显示器上,1dp = 1px。
下面是几种不同单位的相互转换.
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.getResource().getDisplayMetrics().density;
return (int)(pxValue / scale + 0.5f);
}
下面说下如何获取分辨率:
在一个Activity的onCreate方法中,写入如下代码:
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels; // 屏幕宽度(像素)
int height = metric.heightPixels; // 屏幕高度(像素)
float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
在 Android 中, 1pt 大概等于 2.22sp
以上供参考,如果 UI 能够以 sp 为单位提供设计是最好的,如果设计中没有 sp的概念,则开发人员也可以通过适当的换算取近似值。
过 去,程序员通常以像素为单位设计计算机用户界面。例如,定义一个宽度为300像素的表单字段,列之间的间距为5个像素,图标大小为16×16像素 等。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能会小到难以看清 内容。与分辨率无关的度量单位可以解决这一问题。
Android支持下列所有单位。
px(像素):屏幕上的点。
in(英寸):长度单位。
mm(毫米):长度单位。
pt(磅):1/72英寸。
dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。
dip:与dp相同,多用于android/ophone示例中。
sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。
相关推荐
本文将深入探讨Android像素转换,包括dp转px以及px转dp的方法,并提供相关的实践示例。 一、Android屏幕密度 Android设备屏幕的分辨率和物理尺寸各异,为了确保应用界面在不同设备上呈现一致的效果,引入了密度...
在Android开发中,理解和使用正确的计量单位对于创建适应各种屏幕尺寸和密度的应用至关重要。以下是对Android中几种主要计量单位的详细解释: 1. **px(像素)**:像素是屏幕的最小显示单位,代表显示器上一个点的...
在Android开发过程中,由于屏幕尺寸和分辨率的多样性,开发者经常需要在不同的显示单位之间进行转换,以确保应用的界面元素在各种设备上显示一致。"AndroidUnits" 是一个专门为此目的设计的工具类,它提供了方便的...
Android 中显示单位 px 和 dip 以及 sp 的区别 Android 中显示单位 px、dip、sp 等的区别是 Android 开发中一个非常重要的概念。了解这些单位的区别可以帮助开发者更好地设计和开发 Android 应用程序。 首先,px ...
在IT领域,尤其是在Android开发和图像处理中,了解像素、分辨率、PPI(像素每英寸)和DPI(点每英寸)的概念至关重要。这些概念直接关系到设备的显示质量和图像的清晰度。 首先,像素是构成任何数字图像的基本单元...
`dx`和`dp`(Density-independent Pixels)是Android系统中处理像素单位的关键概念,它们对于创建跨设备一致的用户体验至关重要。本文将详细探讨`dx`、`dp`以及如何在像素和`dp`之间进行转换。 `dp`,全称为密度...
- px(pixels):像素单位,直接对应屏幕像素,不推荐用于布局。 - pt(points):印刷行业的单位,1pt = 1/72英寸。 - in(inches):英寸单位。 - mm(millimeters):毫米单位。 使用dp和sp可以确保应用在不同...
在Android开发中,了解设备的屏幕属性,如分辨率、像素密度等,对于创建适配不同设备的应用至关重要。本文将深入探讨如何获取Android手机的屏幕宽度、屏幕高度、屏幕密度(density)、字体密度(font density)以及...
此外,使用比例尺寸单位(dp/dip)而不是像素(px)可以确保元素在不同密度屏幕上大小适中。 6. **Android资源维度(swXXdp)**: 从Android 3.2(API级别13)开始,引入了基于屏幕最小宽度的资源维度,如`...
本文将深入探讨Android中四个主要的像素单位:dip, dp, px, 和 sp,并解释它们的区别以及如何在实际开发中正确使用。 1. **dip (设备独立像素)**: 设备独立像素是一种不依赖于物理像素的单位,它的大小会根据设备的...
### Android编程中的单位详解 #### 一、引言 Android应用程序开发过程中,为了确保界面元素在不同设备上显示效果的一致性,开发者需要熟练掌握Android系统中提供的多种单位。本文将详细阐述Android开发中常见的几...
dp是一种虚拟像素单位,它与设备的物理像素无关,而是基于设备的屏幕密度。1dp在所有设备上都应该占据大致相同的物理空间。这样,无论设备的像素密度如何,使用dp布局的界面都能保持一致的视觉大小。 但是,对于...
1. **dp(Density-independent Pixel)**:密度无关像素,是Android设计中推荐使用的单位。它是一个抽象单位,与设备的物理像素密度无关,但在所有设备上看起来大致相同大小。1dp在160dpi(默认的Android屏幕密度)...
Android系统中,度量单位是非常重要的一部分,对于开发者来说,了解这些度量单位是非常必要的。在Android系统中,屏幕尺寸、屏幕长宽比、分辨率、密度等概念都是非常重要的。 首先,屏幕尺寸是指屏幕的物理尺寸,以...
在IT行业中,虚拟机核心、Android开发、多屏适配以及像素理解是至关重要的知识点,这些内容对于Android开发者尤其重要。下面将详细阐述这些领域的关键点。 首先,虚拟机核心是计算机系统中的一个重要组成部分,它...
它代表了一种与设备无关的像素单位,用于表示屏幕上的物理长度。dp的主要优点在于它可以根据设备的屏幕密度进行自动缩放,从而确保元素在不同分辨率的屏幕上具有相同的实际大小。例如,一个定义为100dp的按钮,在...
dp是一种虚拟像素单位,它考虑了设备的像素密度,使得1dp在所有设备上显示的物理大小接近相同。此外,还有sp(scale-independent pixel)用于字体大小,同样可以根据用户设置的字体缩放比例进行调整。 Android UI...
根据手机的分辨率从 dip 的单位 转成为 px(像素) 根据手机的分辨率从 px(像素) 的单位 转成为 dp dp转px sp转px px转dp px转sp
首先,我们要理解OpenGL ES的基本绘图单位是像素,而点是最基本的形状。在OpenGL ES中,我们使用`glDrawArrays`或`glDrawElements`函数来绘制几何形状,包括点。每个点由两个坐标(x, y)定义,通常是浮点数。为了在...