我正在使用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的图形布局屏幕没有显示按钮的任何问题,但是当我在我的设备中运行应用程序时,这就是我得到的:
所以我不确定我是以错误的方式应用图像还是9补丁文件的问题?如果有人能用这启发我,我将非常感激。谢谢。
答案 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