dp px 像素密度 分辨率

像素单位转换dp-px

直接转换:

int dp= (int) (px / context.getResources().getDisplayMetrics().density + 0.5f);

int px= (int) (dp * context.getResources().getDisplayMetrics().density + 0.5f);

封装为方法:

/**

* 根据手机的分辨率从 dp 的单位 转成为 px(像素)

*/

public static int dp2px(Context context, float dpValue) {

float scale = context.getResources().getDisplayMetrics().density;

return (int) (dpValue * scale + 0.5f);

}

/**

* 根据手机的分辨率从 px(像素) 的单位 转成为 dp

*/

public static int px2dp(Context context, float pxValue) {

float scale = context.getResources().getDisplayMetrics().density;

return (int) (pxValue / scale + 0.5f);

}

屏幕规格参数

像素比例  每英寸像素数  分辨率

xxhdpi  3       480    1080*1920  1080P    144*144   重点关注

xhdpi    2       320    720*1280    720P      96*96      适配基准

hdpi     1.5     240    480*800      WVGA   72*72

mdpi   1.0     160    320*480       HVGA    48*48      基准

ldpi     0.75    120    240*320      QVGA    36*36

字体的单位

1、TextView.setTextSize默认传入的单位是sp,TextView.getTextSize返回值是px,Paint.setTextSize传入的也是px

总结:代码中设置的值都是px,除了TextView.setTextSize

2、TextView有一个可以指定单位的设置字体大小的方法setTextSize(int unit, int size):

第一个参数可设置如下静态变量:

  • TypedValue.COMPLEX_UNIT_PX : Pixels
  • TypedValue.COMPLEX_UNIT_SP : Scaled Pixels
  • TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels

setTextSize(TypedValue.COMPLEX_UNIT_PX, getTextSize());//注意:setTextSize默认单位是SP,而getTextSize()默认单位是PX

名词解释

  • Px(像素Pixel) 不同设备上显示时像素数不会变,比如指定控件的长度是100px,那不管分辨率是多少控件长度都是100px。也正是因为如此才产生了屏幕适配问题。
  • Screen Size(屏幕尺寸) 一般所说的手机屏幕大小如5.0英寸,都是指的对角线的长度,而不是手机面积。
  • Resolution(分辨率) 在屏幕上显示的物理像素总和。比如分辨率是720*1280,则指设备垂直方向有1280个像素点,水平方向有720个像素点。需要注意的是:尽管分辨率通常用宽x高表示,但分辨率并不意味着具体的屏幕长宽比,比如分辨率为720*1280的手机屏幕宽高比不一定是720:1280,但是为了显示效果和谐,两者一般都是一致的。
  • Density(密度) 指单位英寸中的像素数。DisplayMetrics类中属性density的值即为此值,可用于px与dip的互相转换
  • Dpi(像素密度dots per inch ) 指每英寸中的像素数。dp是一个与密度无关的像素,在不同的像素密度的设备上会自动适配,在逻辑尺寸上,与一个位于像素密度为 160DPI 的屏幕上的像素是一致的,在运行的时候,平台会以目标屏幕的密度作为基准,处理所有需要的DIP缩放操作。假定设备分辨率为320*240,屏幕长2英寸宽1.5英寸,dpi=320/2=240/1.5=160,此160dpi表示手机水平或垂直方向上每英寸距离有160个像素点。要把DIP像素转换为屏幕像素,可以用这样一个简单的公式: pixels = dips * (density / 160)。
  • Dip(设备独立像素Device-independent pixel) 同dp,不同设备有不同的显示效果,这个和设备硬件有关,不依赖像素。dip和具体像素值的对应公式是dip值 =设备密度/160* pixel值,可以看出在dpi为160dpi的设备上1px=1dip
  • Sp(放大像素ScaledPixels) 主要用于字体显示(best for textsize)。根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看TextView的源码可知 Android 默认使用 sp 作为字号单位。

来自为知笔记(Wiz)

时间: 2024-08-27 11:54:04

dp px 像素密度 分辨率的相关文章

根据手机的分辨率从 dp 的单位 转成为 px(像素)

/** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); }

采用CSS3 Media Query技术适应Android平板屏幕分辨率和屏幕像素密度

采用HTML5在开发移动应用程序满足各种需求Android分辨率和屏幕的平板设备密度,这是非常麻烦的过程,最终的解决方案是使用css media query,匹配相同的时间分辨率和屏幕像素密度.上进行兼容性測试,终于保证在多数Android平板上都能较好的显示. 一个典型的针对设备的Css Media Query写法例如以下.能够保证页面高度充满屏幕,简单的设置height:100%是不行的. //SAMSUNG N5100, Nexus7 1, @media only screen and (

屏幕分辨率和屏幕像素密度

1.屏幕分辨率:屏幕水平和垂直像素个数. 2.屏幕像素密度: ppi:全称Pixels Per Inch,每英寸屏幕所拥有的像素数------->图像的采样率(在图像中,每英寸所包含的像素数目) 计算:像素密度=√{(长度像素数^2+宽度像素数^2)}/ 屏幕尺寸 注:屏幕尺寸单位为英寸 例:分辨率为1280*720 屏幕宽度为6英寸 计算所得像素密度约等于245ppi dpi:全称Dots Per Inch,每英寸所打印的点数-------->打印分辨率(每英寸所能打印的点数,即打印精度)

像素,分辨率,PPI(像素密度),BPP 扫盲

像素于分辨率 像素,又称画素,为图像显示的基本单位,译自英文“pixel”,pix是英语单词picture的常用简写,加上英语单词“元素”element,就得到pixel,故“像素”表示“图像元素”之意,有时亦被称为pel(picture element).每个这样的信息元素不是一个点或者一个方块,而是一个抽象的采样.仔细处理的话,一幅图像中的像素可以在任何尺度上看起来都不像分离的点或者方块:但是在很多情况下,它们采用点或者方块显示.每个像素可有各自的颜色值,可采三原色显示,因而又分成红.绿.蓝

像素、分辨率、屏幕大小(屏幕适配必看)

简介: 一直对android中常见单位理解不是很透彻,今天分享下.有什么不到位,欢迎指出 含义: 1.屏幕大小 :物理尺寸(手机对角线大小,例如4.7,5.5.5寸的手机) 2.密度(dpi):每英寸所展示的像素 3.像素(px):真实屏幕上所测量的大小 4.dp:屏幕宽高和px的一个比值,在大屏幕手机上对应的px多,小屏幕上对应的px少 图表: 很容易就能理解像素.分辨率.密度的关系 比值(各种屏幕密度的比值): ldpi:mdpi:hdpi:xhdpi:xxhdpi:xxxdpi = 0.7

获取像素密度、屏幕高度、状态栏、标题栏,屏幕截图

演示效果 奇酷1080P 华为1080P 华为720P 屏幕像素参数相关信息表格    像素密度  每英寸像素数  分辨率      分辨率别称      默认图标大小 xxhdpi   3        480   1080*1920   1080P    144*144   重点关注 xhdpi    2        320    720*1280     720P      96*96      适配基准 hdpi     1.5      240    480*800      WVG

Android开发之dip, dp, px, sp区别

显示单位px和dip以及sp的区别 dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖像素. px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多. pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用: sp: scaled pixels(放大像素). 主要用于字

[转]Android中dp,px,sp概念梳理以及如何做到屏幕适配

http://blog.csdn.net/jiangwei0910410003/article/details/40509571 今天又开始我的App开发,因为之前一直做的是SDK,所以涉及到界面UI很少,刚开始做Android应用的时候,没有对dp,px,sp等概念有一个深入的了解,只知道他们之间的转化,还有写个转换工具类等.做Android已经有一年多了,现在再次开始App开发,决定没遇到一个概念,必须得弄透彻.好吧,下面进入主题吧: 首先来看一下他们的基本概念: px   :是屏幕的像素点

Android中dp,px,sp概念梳理

今天又开始我的App开发,因为之前一直做的是SDK,所以涉及到界面UI很少,刚开始做Android应用的时候,没有对dp,px,sp等概念有一个深入的了解,只知道他们之间的转化,还有写个转换工具类等.做Android已经有一年多了,现在再次开始App开发,决定没遇到一个概念,必须得弄透彻.好吧,下面进入主题吧: 首先来看一下他们的基本概念: px   :是屏幕的像素点dp   :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1pxdip  :等同于dpsp   :同dp相