Android中使用到的四种类型的PNG图片

在整个android中可以存在四种PNG后缀的image文件

1.标准PNG: (ex.应用默认的icon.png)

符合PNG-8标准的PNG图片, 只能做图片, 不能放缩.

2.Android打包处理后的9.png: (ex.应用APK中打包的9.PNG)

为了保证占用空间小,android在资源中删除了标准PNG的大量冗余信息,去除了周边的空白像素,减少了IDAT数据段,

在打包成APK的时候,里面的文件就是不可放缩的9.png, 虽然后缀名还是9.png,但是已经没有放缩功能,并且把边界多的两个像素也去除了.

3.Android不可放缩的9.png:

在drawable中可以找到9.png图片,但是使用Draw 9-patch软件打开会报错,但是可以在drawable中使用,

这些文件只是删除了冗余信息,并且加上了边界的两个像素点,

并没有添加可放缩的flag到文件中,这些文件只能作为打包后的9.PNG使用(但是size会小一些),不能放缩和做背景.

4.Android可放缩的9.png:

可以使用Draw 9-patch软件打开,不会报错,在drawable中使用,android会根据设置的黑色像素点来进行放缩.

有添加可缩放的flag到文件中,可以做为View的背景或者普通的图片显示.在做背景时,可以进行拉伸和放缩.

在做非背景时,比如像ImageView这类设置src图片则不随view变化,按其自身大小显示部分或全部.

 

另:  对9.png后缀文件的解析逻辑及可放缩chunk检查的逻辑     Images.cpp

      对9.PNG判断函数入口: Drawable.java中对”nine-patch”字段的判断

posted @ 2012-07-20 10:29  不作恶的妖怪  阅读(4365)  评论(0编辑  收藏  举报