9patch图片是andriod app开发里一种特殊的图片形式,文件的扩展名为:.9.png。9patch图片的作用就是在图片拉伸的时候保证其不会失真,使用.9图片可以让图片在指定的位置拉伸和在指定的位置显示内容,边角不会模糊失真。
![](https://img.haomeiwen.com/i4625401/741b5525825db67f.png)
1. 差异对比
- 9patch图片有四条黑边,用来拉伸和指定显示位置;普通图片没有四边黑线,不能拉伸和指定显示位置;
- 9patch图片是特殊的图片格式 “.9.png”,不同于普通图片格式;
- 9patch图片可以指定内容显示区域,普通图片不能指定内容显示区域;
- 9patch图片拉伸特定的区域不会发生图片失真,普通图片拉伸后会模糊失真。
2. 制作方法
-
使用 Eclipse工具制作.9图片
1)在Eclipse中有提供专门的工具来制作.9图片,在sdk目录下的 tools/draw9patch.bat 的文件,双击运行
draw9工具图
2)点击 File(或将图片拖动到该工具之中)—— Open 9-patch... 选择要制作的图片,然后导入到工具中来
![](https://img.haomeiwen.com/i4625401/7162713bcf4b49bd.png)
3)创建默认.9图片(左边是.9默认图,右边是.9图片纵向,横向,横纵拉伸效果图)
![](https://img.haomeiwen.com/i4625401/66fbf343ecc35e80.png)
4)调节四边黑线,指定图片的拉伸和显示区域
![](https://img.haomeiwen.com/i4625401/d9e74c334bda6872.png)
5)点击 File —— Save9-patch... 保存图片,然后导出.9图
![](https://img.haomeiwen.com/i4625401/9d49c720cc356545.png)
左侧和上方的黑线交叉的部分为扩展区域,
右侧和下方的黑线交叉的部分为内容显示区域。
-
使用 Android Studio工具制作.9图片
1)在drawable文件夹下放一张ic_launcher.png
图片,右键这张图片选择 Create 9-Patch file...
创建draw9步骤图
2)选择.9图片的存放路径和命名,点击 OK
![](https://img.haomeiwen.com/i4625401/d55e6aaa83a19ef8.png)
3)创建默认.9图片(左边是.9默认图,右边是.9图片纵向,横向,横纵拉伸效果图)
![](https://img.haomeiwen.com/i4625401/d5b23a0dc6346ed6.png)
4)调节四边黑线,指定图片的拉伸和显示区域
![](https://img.haomeiwen.com/i4625401/3289b76d223ccf7c.png)
① 顶部:在水平拉伸的时候,保持其他位置不动,只在这个点的区域做无限的延伸;
② 左边:在竖直拉伸的时候,保持其他位置不动,只在这个点的区域做无限的延伸;
③ 底部:在水平拉伸的时候,指定图片里的内容显示的区域;
④ 右边:在竖直拉伸的时候,指定图片里的内容显示的区域;
左边和上边的重合区域是拉伸区,右边和下边的重合区是内容显示区。
3. 编译错误
AS中对.9的图片增加了安全检查机制,如果.9图片有不规范的地方就会编译报错。
解决方法:
① 检查.9图片制作是否正确,四边是否都有绘制黑边;
② 确保是正确的.9图片,放在 drawable 文件中,而不是 mipmap 文件;
③ 让AS取消掉对.9图片的安全检查。在app目录下的build.gradle文件,添加取消安全检查的两行代码:
// 取消掉系统对.9图片的检查
android{
...
aaptOptions{
cruncherEnabled = false
useNewCruncher = false
}
...
}
网友评论