当一个图片内容太多时,Android会自动放缩整张图片,保证背景图片能覆盖整个容器,但是这种放缩整张图片的效果可能并不好。可能需要的情况是我们只想放缩图片中的某个部分,这样才能保证视觉效果。
为了实现只能放缩图片中某个部分的效果,我们需要借助9Patch图片来实现。9Patch图片是一种特殊的PNG图片,这种图片.9.png结尾,它在原始图片四周各添加一个宽度为1像素的线条,这4条线就决定了该该图片的放缩规则、内容显示规则。
左侧和上侧的直线共同决定了图片的放缩区域:以左边直线为左边界绘制矩形,它覆盖的区域可以在纵向放缩;以上面直线为上边界绘制矩形,它覆盖的区域可以水平放缩;它们二者交集可以在两个方向上放缩。
定义图片放缩区域.jpg右侧和下侧的直线共同决定图片的内容显示区域:以右边直线为右边界绘制矩形,以下边直线为下边界绘制矩形,它们二者的交集就是图片的内容显示区域。 定义图片的内容显示区.jpg
Android为制作9Patch图片提供工具,在以前用Eclipse时,该工具位于Android SDK安装路径的tools目录下。现在使用Android Studio可以把图片导入资源文件夹下,然后右键可以找到Create 9-Patch file...选项,点击就可以在同文件夹下生成一个9-Patch文件,打开这个9-Patch文件就可以根据需求编辑自己的9-Patch图片了
如图:
定义9-Patch图片.jpg 定义9-Patch图片.jpg 定义9-Patch图片.jpg
可以看到无论图片怎么变形,中间的‘梦’字不会变形。
网友评论