2.3点9图介绍
在AndroidAPP开发中,屏幕尺寸的多样性导致的界面适配,是让开发者非常头疼的问题:
很多APP内置的图片在不同尺寸屏幕的设备上被放大拉伸后,边角会模糊失真,十分丑陋;针对不同的分辨率内置多套图片,又增大了APP安装包的大小。
Google专门制作了一种.9.PNG格式图片来解决这个问题:这种格式的图片能按照设定来拉伸特定区域,而不是整体放大或缩小,从而保证了图片在各个分辨率的屏幕上都可以完美展示,同时可以把显示内容区域的位置标示清楚,这种图也被称作9Patch图。
这种格式图片相对于普通PNG格式的图片主要区别在于四周增加左、上、右、下四条带有一个像素的黑实线,分别表示含义如下:
左边线条—当图片进行纵向拉伸时,由此线条从图片左边水平位移到图片右边所形成的区域都是可以进行纵向拉伸的,此区域外则不进行拉伸,保留原来效果。
上边线条—当图片进行水平拉伸时,由此线条从图片上边垂直位移到图片下边所形成的区域都是可以进行横向拉伸的,此区域外则不进行拉伸,保留原来效果。
右边线条—控制图片填充内容的垂直padding留白。
下边线条—控制图片填充内容的水平padding留白。
9png图片一般用在纯色且需要拉伸的地方,如聊天程序的对话框(字数不同,对话框的大小也不同)、按钮和箭头等。
Android在sdk包中提供了绘制9Patch图的工具, 具体路径如下: sdk\tools\draw9patch.bat
Photoshop制作方式:
先输出普通的png资源,然后扩大画布大小,上下左右各空出一个像素,再用一个像素的铅笔工具(颜色选择纯黑色),上下左右分别画点就可以了,保存的时候注意把后缀修改为.9.png。
最外围的一圈像素必须要么是纯黑色,要么是透明,一点点的半透明的像素都不可以有,比如说99%的黑色或者是1%的投影都不可以有。
(1).9.png只是针对图片拉伸而言的,包括单独的横线拉伸,单独的纵向拉伸和同时横向和纵向拉伸,对于图片压缩没有效果。
(2).9.png可以指定图片上填充内容(包括文字和非文字的布局等)的区域,非填充区域即可理解成div中的padding留白。
(3)文件的后缀名必须是.9.png,不能是.png或者是.9.png.png,这样的命名都会导致编译失败。
网友评论