您的位置:华清远见教育科技集团 >> 新闻动态 >> Android资料 >> Android 9Patch工具使用  
 
Android 9Patch工具使用
分享到:

9Patch是一个对png图片做处理的工具。经9Patch处理过的图片以*.9.png结尾,和普通图片相比,四周多了一个边框,如图1所示。


图1 9Patch处理过的图片*.9.png

“*.9.png”是一种被Android os所支持的特殊图片格式,是经过9Patch特殊处理过的图片。用它可以实现部分拉伸而不出现拉伸以后图片失真等不良现象。为将普通的PNG图片编辑转化为9Patch图片,可以使用 Android SDK/tools目录下提供的draw9patch.bat编辑器。draw9patch.bat编辑器界面如图2所示。


图2 draw9Patch.bat编辑器界面

在draw9patch.bat编辑器中,可以对导入的png图片进行以下操作来达到想要的图片目标。

·Zoom:缩放左边编辑区域的大小。
    ·Patch scale:缩放右边预览区域的大小。
    ·Show lock:当鼠标在图片区域时,显示不可编辑区域。
    ·Show patches:在编辑区域显示图片拉伸的区域。
    ·Show content:在预览区域显示图片的内容区域。
    ·Show bad patches:在拉伸区域周围用显示可能会对拉伸后的图片产生变形的区域;根据图片的颜色值来区分是否为bad patch。

9Patch操作实例:

1.在你Android SDK 路径下 X:/android sdk/tools ,你会找到一个 【draw9patch.bat】,提示导入一张png图片,然后真正进入"9Patch "的操作界面,如图3所示:


图3 9Patch "的操作界面

序列 ① :在拉伸区域周围用红色边框显示可能会对拉伸后的图片产生变形的区域,如果完全消除该内容则图片拉伸后是没有变形的,也就是说,不管如何缩放图片显示都是良 好的。 (实际试 发现NinePatch编辑器是根据图片的颜色值来区分是否为bad patch的,一边来说只要色差不是太大不用考虑这个设置。)

序列 ② :区域是导入的图片,以及可操作区域。

序列 ③ :这里 zoom:的长条bar 是对导入的图放大缩小操作,这里的放大缩小只是为了让使用者更方便操作,毕竟是对像素点操作比较费眼,下面的 patch scale 是序列 ④区域中的三种形态的拉伸后的一个预览操作,可以看到操作后的图片拉伸后的效果。

序列 ④: 区域这里从上到下,依次为:纵向拉伸的效果预览、横向拉伸的效果预览,以及整体拉伸的效果预览

序列 ⑤: 这里如果你勾选上,那么当你鼠标放在 ② 区域内的时候并且当前位置为不可操作区域就会出现lock的一张图,就是显示不可编辑区域 ;

序列 ⑥: 这里勾选上,那么在④ 区域中你就会看到当前操作的像素点在拉伸预览图中的相对位置和效果。

序列 ⑦: 在编辑区域显示图片拉伸的区域;

2.具体操作:

鼠标左键选取需要拉伸的像素点; shift+鼠标左键取消当前像素点。

操作区域:

大家看到导入的png图片默认周围多了一像素点,也就是这一圈一像素点就是咱们的可操作区域。因为下方和右方可操作区域是指定内容的显示区域,属于可选区域,可不予理会;但是要注意内容区域的标记不能有间断,也就是说标记要连续且仅有一处,否则.9.png图片在放入项目下会报错。

大家需要注意Left 和 top 操作区域:

·Top操作区域的一排像素点,表示横向拉伸的像素点;
    ·Left操作区的一排像素点,表示纵向拉伸的像素点;

3.使用 “*.9.png”的好处:

在我们手机游戏开发的过程中,我们关系的是生成的安装文件、比如j2me 的jar 包,塞班的sis、sisx 以及咱们andrid中的apk都希望打包后的包越小越好、虽然现在的手机趋向于智能了,但是毕竟手机的容量和内存还是有限、身为移动设备开发者的我们对此都很看重,那么通过"9Patch"处理后的图片我们就可以省去不少的内存和容量。

·省精力和时间

如果我们有一张50*50的类似上面那种带花边的png图片,那么我们在android或者大分辨率的机器上使用的画,肯定需要对其处理,那么要不就是让美工的mm们给咱们重新做一张,那么通过"9Patch"处理得到的“*.9.png”就会省去美工的负担了。

·省内存

如果不想用代码来对其小图进行缩放来再次使用(因为考虑会失真),那么可能会多加了图片,这样一来游戏包的大小就会增加了,几K—几十K不等,而利用"9Patch"处理的就省去了这些麻烦。

·减少代码量

有些童鞋该说啦,我用代码一样能实现(图2)的效果不失真,OK,我也知道。当初我在J2ME平台做RPG的时候也是利用设置可视区域等代码来实现的,但是如果你用“.9.png”的方式就更简单!

 更多相关文章

·Android如何自定义样式和主题
·Android触摸事件处理
·Android LogCat命令行工具
·Android DevTools开发调试工具
·Android应用开发中图片的处理