在drawable中的图片在不同密度的设备上显示时,在屏幕上的占比是不一样的。
如:160px的图片,在800x480的屏幕上显示:
密度是:
160dpi时,占屏幕的三分之一 (=160px/480px)。
240dpi时,占屏幕的二分之一(>160px/480px)。
如何保持图片在不同密度的设备上,图片显示相同的像素数?
方法A:
为不同密度的设备,准备相应的图片,放在对应的drawable-?dpi中。
优点:可以为不同密度的设备,准备对应密度的图片,可以做到图片在哪种密度上都很清晰细腻。
缺点:图片比较多,增加图片制作的工作量;
方法B:
只准备一组图片,将图片放到drawable-nodpi中。
优点:减少了图片的数量;
确定:图片可能被拉伸而导致不细腻;
方法C:
使用px指定图片的大小
理解DPI
是密度density的测量单位,dots per inch 每英寸内的像素数。
理解DIP
是指定大小的单位,device independent pixels设备独立像素,应该是Density-independent pixel 即与设备的密度无关,有DIP指定的控件大小,在不同密度的设备上,显示的大小相仿。
pixels = dip * (density / 160).
注:显示图片的大小与图片本身的dpi没有关系。