Left操作区的一排像素点,表示纵向拉伸的像素点;
以上摘自李华明博客
首先说一下9 path是什么。9path是android特殊格式的png图,它以.9.png为后缀名。
它用在使用图片做背景时做拉伸使用的,9path会选择一个背景图片中的一部分在拉伸时做平铺,其他区域保持原始大小,来组合成一张新的背景。当然也可以用在设置图片的时候设置的图片超过原始大小时,将其中的部分做平铺,其他区域保持不变。
怎么得到9path图片?
使用android sdk中自带的工具
双击打开。
点击file,打开一张普通的png图片。
序列 ① :在拉伸区域周围用红色边框显示可能会对拉伸后的图片产生变形的区域,如果完全消除该内容则图片拉伸后是没有变形的,也就是说,不管如何缩放图片显示都是良 好的。 (实际试 发现NinePatch编辑器是根据图片的颜色值来区分是否为bad patch的,一边来说只要色差不是太大不用考虑这个设置。)
序列 ② :区域是导入的图片,以及可操作区域。
序列 ③ :这里 zoom:的长条bar 是对导入的图放大缩小操作,这里的放大缩小只是为了让使用者更方便操作,毕竟是对像素点操作比较费眼,下面的 patch scale 是序列 ④区域中的三种形态的拉伸后的一个预览操作,可以看到操作后的图片拉伸后的效果。
序列 ④: 区域这里从上到下,依次为:纵向拉伸的效果预览、横向拉伸的效果预览,以及整体拉伸的效果预览
序列 ⑤: 这里如果你勾选上,那么当你鼠标放在 ② 区域内的时候并且当前位置为不可操作区域就会出现lock的一张图,就是显示不可编辑区域 ;
序列 ⑥: 这里勾选上,那么在④ 区域中你就会看到当前操作的像素点在拉伸预览图中的相对位置和效果。
序列 ⑦: 在编辑区域显示图片拉伸的区域;
操作:鼠标左键选取需要拉伸的像素点; shift+鼠标左键取消当前像素点。
如下图:新导入的png文件在周围会多出一个像素点,这一圈一像素点是我们的操作区域
这里需要注意一点就是,必须左边和上边都得有黑线,如果只有一边有黑线的话,生成的png文件在eclipse中会报错。另外要注意内容区域的标记不能有间断,也就是说标记要连续且仅有一处,否则.9.png图片在放入项目下会报错。
主要大家注意Left 和 top 操作区域;
Top操作区域的一排像素点,表示横向拉伸的像素点;
Left操作区的一排像素点,表示纵向拉伸的像素点;
保存:点击file中的保存,直接写文件名即可,默认会保存在“我的文档”目录下,这个目录可以调整,保存完成之后就可以看到一个以.9.png为后缀的图片了,如下图:
可以看到这张图的左侧和上部都有一条黑线。
使用:直接放在你的功能下的drawable目录或者其他drawable目录下即可。使用的时候直接在xml文件中使用,例如:
<TextView android:id="@+id/swithCity"
android:background="@drawable/cityswitchback"android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="切换城市"
style="@style/text03" android:gravity="center">
</TextView>
效果图如下: