Android不像苹果:苹果公司为iphone包办的软件硬件,而Android手机的硬件设备却不尽相同。单是屏幕设备就有很多(分辨率、尺寸、DPI)。这些种类繁多的屏幕设备给开发人员在Android界面开发时提高了不少难度。
可爱的摩托罗拉大哥是怎样“疼爱”开发人员滴?Droid X 和Droid分辨率相同(480*800),但是DPI(每英寸的点数)却相差十几个。再看看HTC Droid和HTC Evo的差距也不小,死板界面设计用在它们身上“不是你死就是我亡”。
至于为什么要有DPI的出现呢,因为不同尺寸的屏幕可能会用相同的分辨率,每英寸的点数不同,每英寸的点数值就是DPI。
上个图让大家体会一下不同分辨率的屏幕感观。
可谓“兵来将挡水来土掩”,山人自有妙计。Android平台提供了DIP(Density Independent Pixels 与密度无关像素)。用它来定义界面元素的大小,能够根据不同屏幕进行渲染,使其适应不同的屏幕。
不过这种方法就不适用于那些已渲染的资源,比如图片。这样的情况,有几种方法选择:
1.代码控制
即不灵活又不美观。
2.为不同的屏幕准备相应的多套图片
不错,但是最终.apk包会变好大。
3.做成9-patch图片
呵呵,是个不错的选择,不过要有劳美工设计多费心神了。
4.为最常用的屏幕准备相应的9-patch图片
是最佳方法。方法2和方法3的结合。为常用的屏幕240×340, 320×480, 480×800提供相应的9-patch图片,9-patch图片会根据屏幕的长宽比变高或变宽。
9-Patch 图片分有安全区域和拉伸区域,拉伸区域会根据屏幕不同而改变。