android 中 dp(dip),dpi,px,sp概念以及联系
来源:互联网 发布:网络发国际传真 编辑:程序博客网 时间:2024/06/06 02:44
一、相关概念
- 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,这样在可以匹配不同分辨率手机。
阅读全文
0 0
- android 中 dp(dip),dpi,px,sp概念以及联系
- Android中px, ppi, dpi, dp, dip, sp概念解析
- android开发中px,dip,dp,sp,dpi的区别,以及dp与px换算公式.
- Android中dp、dip、dpi、ppi、px、sp的区别
- android 单位:px,dip(dp),sp,dpi
- Android中DP、DPI以及PX概念
- Android中px,pt,dp,sp,dpi之间的区别以及联系
- android UI中常用的几个概念:dp,dip,dpi,sp,px,pt,ppi及它们之间的关联
- dpi px dip dp sp density 以及公式换算 整理
- 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 ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- android UI的几个概念:px,dip(dp),sp,dpi,分辨率等
- 《阿里巴巴 Java 开发规约》自动化检测插件全球首发!
- 3-伪目标的引入
- 浏览器原理(三)——渲染过程之解析
- LWC 54:697. Degree of an Array
- 详解python装饰器
- android 中 dp(dip),dpi,px,sp概念以及联系
- XListView
- UVA-1442 Cav
- 程序底层工具:cl编译器
- python绘制布林带
- VAO与VBO
- 网络请求数据添加到列表(okhttp+RecyclerView)
- Elasticsearch 5 Ik+pinyin分词配置详解
- Java实现定时任务