px(pixel)
像素,即屏幕上的显示点;
in(inch)
英寸,每英寸=2.54厘米,我们常说的几寸的手机,指的就是手机屏幕对角线是几英寸;
dpi(dots per inch)
每英寸的像素个数, 320x480的屏幕,如果宽为1英寸,则横向dpi是320/1(宽);如果高为1.5,则纵向dpi是 480/1.5(高);所以横向和纵向都是320;因为手机屏幕大多使用正方形点;
density
屏幕密度,使用 density = dpi / 160;dpi越大,密度就越大;
dp(dip,device independent pixels)
是android特有的单位,屏幕密度为dpi=160的屏幕上,1dp = 1px; 如果dpi=320,那么1dp = 2px;
sp
与dp一样,主要用于字体大小,与dp的区别是可根据字体大小缩放;
对于图片资源
先说下屏幕的尺寸,下面是几个常用的屏幕尺寸
- drawable-ldpi (dpi=120, density=0.75)
- drawable-mdpi (dpi=160, density=1)
- drawable-hdpi (dpi=240, density=1.5)
- drawable-xhdpi (dpi=320, density=2)
- drawable-xxhdpi (dpi=480, density=3)
有时候我们可以根据屏幕大小来配不同的图片,但是这样会增加apk大小,有时候也麻烦;
android会自动渲染,根据屏幕尺寸自动选择文件进行渲染,根据以上的路径优先找对应的文件夹下的图片来绘制;
xhdpi作为资源首选,因为目前大多数手机是这个尺寸;
图片显示与wrap_content;
首先,我们在xhdpi的目录里,有一张120x120px的图片,那么在hdpi的屏幕上,显示的大小是
120px/2(xhdpi屏幕密度) * 1.5(hdpi屏幕密度) = 90px,依此类推;
当然,如果在 drawable-mdpi 目录下已经有一张 120x120的图片,那么图片会显示为120x120的;
时间: 2024-10-04 17:35:43