在android上应用9-patch png

时间:2013-10-16 04:59:10

标签: android button nine-patch android-drawable

我正在使用9补丁图像来创建可以在不同屏幕尺寸上拉伸的按钮选择器。所以我基本上在选择器中传递文件的名称(没有.9.png),如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true" android:drawable="@drawable/img_common_white_button_bg_pressed" />
    <item android:drawable="@drawable/img_common_white_button_bg_default" />

</selector>

我认为这应该没问题。 xml的图形布局屏幕没有显示按钮的任何问题,但是当我在我的设备中运行应用程序时,这就是我得到的:

enter image description here

所以我不确定我是以错误的方式应用图像还是9补丁文件的问题?如果有人能用这启发我,我将非常感激。谢谢。

3 个答案:

答案 0 :(得分:1)

请考虑下面提到的关于9-patch图像的事情:

- &gt; .9.png图片在图片周围有黑色边框,表示它的补丁。

具有.9.png的可绘制文件夹图像中的

- &gt; 被识别为9补丁图像,因此9补丁图像必须具有.9.png作为扩展名

在你的情况下,你从图像名称中删除了.9,因此它将是正常的可绘制图像周围有黑色边框。

你有2个选择。从按钮中删除补丁重新创建所有Android可绘制大小。 或者保留9个补丁图像,并将其扩展.9.png放在可绘制文件夹中。

答案 1 :(得分:1)

请检查您是否将.9.png复制到所有分辨率文件夹中,例如drawable-hdpi drawable-xhpdi drawable-xxhdpi。

如果运行设备dpi与分辨率文件夹不同,Android听起来就像拉伸边界区域(静态区域)一样如果你只将.9.png复制到drawable文件夹中,如果在dpi为3的设备上运行,边框将被拉伸3倍宽。

答案 2 :(得分:0)

将图像重命名为 img_common_white_button_bg_default.9.png

img_common_white_button_bg_pressed.9.png。

注意:正常的PNG文件( .png)将在图像周围添加一个空的单像素边框,您可以在其中绘制可伸缩的色块和内容区域。之前保存的9补丁文件( .9.png)将按原样加载,不添加绘图区域,因为它已经存在。

阅读官方文档:Draw 9-patch