【Android】9.png小节

1、NinePatch Image简介

NinePatch Image就是平时说的9.png格式图片android

优势:能够定义可扩展区域,自动处理png图片扩展的问题,能够很好的适应Android设备那千奇百怪的屏幕分辨率要求。ide

限制,只适合纯色或者简单线框的图形,若是涉及的图像比较复杂或者颜色层次较多,是难以得到比较良好的扩展效果的。工具

主要特色:只是在普通png图像最外面增长了一圈1px的边框,边框就是用来定义图片中可扩展的和静态的区域。对于大多数状况来讲,9.png能够分割为9个区域,这大概也是9.png这个名称的由来:spa

如上图所示,上边和左边的黑色边框将图片分割成9个区域,其中xml

1,3,7,9是静态区域,也就是不会被扩展的区域。图片

2,8是水平扩展区域ci

4,6是竖直扩展区域扩展

5是重合部分,也就是水平竖直都可以扩展的区域im

固然,虽然叫9.png图片,可是并不仅限于分割成9个区域,上边和左边能够定义任何数量的线框,从而将图片分割成多个区域。margin

另外,右边和底部边框能够定义内容区域,不过这个内容区域与是否扩展没有联系,更多只是像给内容增长一个padding而已:所以这部分是可选的。


2、draw9patch

draw9patch是android SDK自带的编辑9.png图片的小工具。使用比较简单,只有几个选项:

1.show lock。显示不可绘区域

2.show patches。显示分割区域

3.show content。显示内容区域,即预览图中的紫色区域

4.show/hide bad patches。显示有问题区域

惟一值得一提的是bad patches功能,能够预先标示出在扩展中会出现失真的区域:

放大看看:

能够看出,因为水平扩展区域覆盖了左上角的圆角,扩展过程当中会产生失真,因此用红色方框标示出来了,这个功能算是比较有用的。

3、注意问题

(1)9.png格式图片放在什么文件夹下面?

9.png除了能够定义扩展区域外,其余与普通png没有区别,因此最好是按照hdpi,xhdpi,xxdpi文件夹放置。因此若是只是单纯的圆角矩形之类的图片,最好仍是直接使用xml文件定义drawable比较方便。

(2)9.png图片大了怎么办?

若是9.png图片过大,可能出现不一样区域相互覆盖的问题。因此9.png图片只须要保留那些主要轮廓,尽可能作得小一些。

(3)9.png图片显示有黑边框还在

若是右边和下边的内容区域没有定义,某些时候就会出现这种问题,因此最好仍是将右边和下边的内容区域所有都定义出来。


Android分享 Q群:315658668

相关文章
相关标签/搜索