android 单位尺寸理解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 单位尺寸理解相关的知识,希望对你有一定的参考价值。
dip : device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
dp : 和dip相同。
px : pixels(像素),一个像素通常被视为图像的最小的完整采样,不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
pt : point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用。
sp : scaled pixels(放大像素). 主要用于字体显示best for textsize。
in :(英寸):长度单位。
分辨率 :分为显示分辨率(屏幕分辨率)和图像分辨率。
显示分辨率:屏幕图像的精密度,是指显示器所能显示的像素有多少。显示器可 显示的像素越多,画面就越精细。显示分辨率一定的情况下,显示屏越小图像越清晰,反之,显示屏大小固定时,显示分辨率越高图像越清晰。
图象分辨率 :单位英寸中所包含的像素点数。
mdpi与hdpi是2:3的关系
mdpi与xhdpi是1:2的关系
ldpi 与mdpi是3:4的关系
dp与px换算公式:
pixs =dips * (densityDpi/160).
dips=(pixs*160)/densityDpi
现在假设,在一个项目中,你将一张60px*60px的图片放到mdpi中,它的大小是60*60;
若把它拿到hdpi中,那么它的大小应该是40*40,图片缩小。
一、android中的屏幕知识
像素:(px)每张图片都是由色点组成的,每个色点就是一个像素,像素的大小是可以变化的,所以也成为“相对长度”;相机所说的像素,实指最大像素数,如200万 = 1600 * 1200 ,像素是由相机里的光电传感器上的光敏元件数目所决定的,一个光敏元件就对应一个像素。因此像素越大,意味着光敏元件越多,相应的成本就越大。
屏幕分辨率:就是屏幕每行的像素点数*每列的像素点数;手机的分辨率在出厂时就是已经确定好的,不可改变。
图像分辨率:每英寸图像内的像素点数。图像分辨率是有单位的,叫像素每单位(px/in);
屏幕大小:只屏幕对角线的物理长度,不可改变,用英寸(in)表示;
屏幕像素密度:(ppi)是指屏幕对角线上每英寸的像素数量;正常距离下,PPI高于300时,人眼已经无法辨别像素点
二、关于像素大小
像素的大小是不固定的,但是,一台电子设备,出厂后的屏幕分辨率和像素的物理大小就是确定的了。
为什么电脑可以调节屏幕分辨率?
电脑的实际分辨率就是最大分辨率,而调节到较小分辨率时,实际是通过填充一些模拟色块,将屏幕分辨率凑到硬件的实际分辨率。
三、开发人员适配
Android中会有dp(dip)、px、dpi、density。
dip:就是dp,设备无关像素;
px:像素,不过多介绍;
dpi:dots per inch ,每英寸的像素点数,也叫像素密度(px/inch);
density:密度,density = 实际dpi/标准dpi,即 实际dpi /160;
根据定义,当dpi为160时,dp等于px,我们得1dp = 160*1inch;
又有dpi定义得:1px = 1dpi*1inch;==>1px = 1dpi*(1dp/160) = (1dpi/160)*1dp;
所以,dp和px的换算公式为:
1dp = px/(Dpi/160) = (px*160)/Dpi = px / 密度;
1px = dp * (Dpi/160) = dp * 密度;
总结,
120dpi(ldpi低密度屏) 1dp = 0.75px ( 标准: 320*240)(由于像素点是物理点,所以用2个像素点来显示3个dp的内容)
160dpi(mdpi中密度屏) 1dp = 1px ( 标准: 480*320)
213dpi(tvdpi电视密度屏) 1dp = 1.33px
240dpi(hdpi高密度屏) 1dp = 1.5px( 标准: 800*480)
320dpi(xhdpi极高密度屏) 1dp = 2px( 标准: 600*124)
图片适配
按照中密度屏给出UI,然后进行放在不同dpi的图片文件夹中;
尺寸适配
在不同dpi的values文件中,按照公式进行换算
以上是关于android 单位尺寸理解的主要内容,如果未能解决你的问题,请参考以下文章
Android课程---手机尺寸相关的概念 +尺寸单位+关于颜色