android 中 dp(dip),dpi,px,sp概念以及联系
2017-10-15 18:15
519 查看
一、相关概念
px(pixel):像素。像素这个概念平时生活中经常遇到,是作为图像构成的基本单元,单个像素的大小并不固定,跟随屏幕大小和像素数量的关系变化(屏幕越大,像素越低,单个像素越大,反之亦然)。所以在使用像素作为设计单位时,在不同的设备上可能会有缩放或拉伸的情况。dpi:像素密度。是指屏幕上每英寸(1英寸 = 2.54 厘米)距离中有多少个像素点。如果屏幕为 320*240,屏幕长 2 英寸宽 1.5 英寸,Dpi = 320 / 2 = 240 / 1.5 = 160。
dp/dip(device independent pixels):设备独立像素。也可以叫做dp,长度单位,同一个单位在不同的设备上有不同的显示效果,具体效果根据设备的密度有关。也就是我们经常在写layout的时候使用的尺寸单位。
sp:sp是开发写layout时关于字体的字号单位,且dp与sp总为1:1关系。
在我们实际开发中,因为要支持手机上的多种分辨如WVGA、HVGA和QVGA,都会使用dp/dip作为长度的单位。Android系统定义了四种像素密度:ldpi(120dpi)、mdpi(160dpi)、hdpi(240dpi)、xhdpi(320dpi)。dp和px的关系:px = dp * (dpi / 160),因此它们对应的dp到px的系数分别为0.75、1、1.5和2,这个系数乘以dp长度就是像素数。例如界面上有一个长度为“80dp”的图片,那么它在240dpi的手机上实际显示为80×1.5=120px,在320dpi的手机上实际显示为80×2=160px。如果你拿这两部手机放在一起对比,会发现这个图片的物理尺寸“差不多”,这就是使用dp作为单位的效果。sp则作为字体的单位。
二、dip和px之间的转换
dip转换为px:public static int diptopx(Context context, float dipValue){ final float scale = context.getResources().getDisplayMetrics().density; return (int)(dipValue * scale + 0.5f); }
px转换为dip:
public static int pxtodip(Context context, float pxValue){ final float scale = context.getResource().getDisplayMetrics().density; return (int)(pxValue / scale + 0.5f); }
三、如何获取屏幕分辨率
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)
tips:假设你是用java代码作图时,比如canvas.drawCircle()
画圆时,半径的单位为px,可以先把你要设置的大小的dp转换为px,这样在可以匹配不同分辨率手机。
相关文章推荐
- android开发中px,dip,dp,sp,dpi的区别,以及dp与px换算公式.
- Android-分辨率以及dip(dp)、dpi、ppi、px、sp、pt说明
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- Android中px, ppi, dpi, dp, dip, sp概念解析
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- Android中px, ppi, dpi, dp, dip, sp概念解析
- Android-分辨率以及dip(dp)、dpi、ppi、px、sp、pt说明
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- android UI的几个概念:px,dip(dp),sp,dpi,分辨率等
- Android-分辨率以及dip(dp)、dpi、ppi、px、sp、pt说明
- Android中px,pt,dp,sp,dpi之间的区别以及联系
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- 学习android 笔记(4):如何获取屏幕的相关属性以及dp 、dip、dpi 、px的概念
- android UI中常用的几个概念:dp,dip,dpi,sp,px,pt,ppi及它们之间的关联