Android 对图片的拉伸处理 draw9patch

来源:互联网 发布:小米usb网络共享 编辑:程序博客网 时间:2024/05/02 04:53

9-patch格式,是在Android中特有的一种PNG图片格式,以"***.9.png"结尾。此种格式的图片定义了可以伸缩拉伸的区域和文字显示区域,这样,就可以在Android开发中对非矢量图进行拉伸而仍然保持美观。如果使用位图而没有经过9-patch处理的话,效果就会想第一张截图中的“普通图片背景按钮”那样被无情的拉伸,影响效果。最终使得图片的变的很模糊

该格式相对于一般PNG图片来说,多了上下左右各一条1px的黑线。左、上黑线隔开了9个格子,当中一个格子(见上图Strechable Area区域)声明为可以进行拉伸。右、下两条黑线所定义的Paddingbox区域是在该图片当做背景时,能够在图片上填写文字的区域。每条黑线都是可以不连续的,这样就可以定义出很多自动拉伸的规格。

Android sdk中提供了设置的工具,启动命令位于:$ANDROID_SDK/tools/draw9patch.bat或是在sdk的tools目录下找到draw9patch.bat双击就可以使用了。

使用它对于原始PNG进行设置9-patch格式,非常方便:如图所示




draw9patch工具的右侧是能够看到各方向拉伸后的效果图,你所要做的就是在图上最外侧一圈1px宽的像素上涂黑线。

注意,在draw9patch.bat第一次运行时,sdk2.2版本上会报错:java.lang.NoClassDefFoundError:org/jdesktop/swingworker/SwingWorker。需要下载swing-worker-1.1.jar ,放入$android_sdk/tools/lib路径下,成功运行。

完成后放到资源文件中在设为各种背景图用  这样就不会出现失真的现象了

下面放一张从做过的处理的图片实现最终的拉升效果的式样