Android Studio(3.1.3 win64)中9-patch图片的制作和使用

Android app 开发中使用的 9-patch 图片,在作为空间背景时可以按照开发人员的设置做相应的拉伸,从而保证正常的小时效果。

在翻阅郭神的《第一行代码》第二版  chapter3 相应章节时,发现郭神对 9-patch 图片的使用,有个步骤不生效,也可能是我理解有问题,遂花了点时间重新整理了一遍 9-patch 图片的制作过程和使用步骤,亲测可正常使用。

测试时使用的 Android Studio 版本号为 3.1.3(Win64)。

网上的其他博客在介绍 9-patch 时会带上以前eclipse和低版本的 Android Studio 的制作方法。本文就不在重复已有的内容,直接上最新版本的 Android Studio 上的用法。

1. 制作

步骤一:将待制作的原始图片 xxx.png 放至 res/drawable 目录下。注意不能放在其他目录,我尝试在 mipmap 目录下操作,结果失败了。

步骤二:选中原始图片 xxx.png,右击,在弹出的菜单中选择“Create 9-Patch file...”选项,如下图所示


步骤三:在弹出的窗口中(如下图)选择保存的路径,设置新生成的 9-patch 图片的名字,直接使用默认的路径和名字即可,点击 OK 按钮完成本步操作


步骤四:在 Android Studio 中直接到 res/drawable 目录下双击步骤三中生成的 9-Patch 图片,进入 9-Patch 图片的编辑模式,如下图:


勾选图中几个复选框,同时在图片的四个边缘分别画四段黑线,左边界和上边界的两条黑线是用来确定图片伸缩的区域,即图中紫色区域。

四个方向的黑线代表的意义如下:

顶部:在水平拉伸的时候,保持其他位置不动,只在这条黑线的区域做无限的延伸
左边:在竖直拉伸的时候,保持其他位置不动,只在这条黑线的区域做无限的延伸
底部:在水平拉伸的时候,指定图片里的内容显示的区域

右边:在竖直拉伸的时候,指定图片里的内容显示的区域

四个方向的黑线具体如何画,就不多赘述了,很多博客里都有写,实际操作的时候摸索一两下就会。

步骤五:编辑完毕后,Ctrl+S快捷键保存,此时如果直接 Make Project 会报 duplicate 的错误。郭神的《第一行代码》第二版相关章节说保存后替换掉之前的png图片,我就把原始的png图片删掉,并把新保存的 9-Patch 图片重命名为原始 png 图片的同名图片,然后在 layout 文件中设置 background 引用该图片,发现伸缩效果根本不生效。

后来按照以下操作才解决这个问题:以上 Ctrl+S 保存 9-Patch 图片后,直接将res/drawable目录下的原始png图片删除,9-Patch图片的名字依然保持默认名(以上图为例,依然叫 ic_launcher.9.png),此时在layout文件中直接使用

android:background="@drawable/ic_launcher"

9-Patch 图片的伸缩效果即可生效。

2.使用

至于 9-Patch 图片的使用,上述步骤五中已经说明,操作以上例子,对于名为 xxx.png 的原始图片,生成 xxx.9.png 的 9-Patch 图片后,删除 xxx.png 原始图片,直接在 layout 文件中使用 @drawable/xxx 引用即可,不多说






 

猜你喜欢

转载自blog.csdn.net/ding3106/article/details/80917604