0

我正在使用 9-patch 图像为可以在不同屏幕尺寸中拉伸的按钮创建选择器。所以我基本上在选择器中传递文件的名称(没有.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-patch 文件的问题?如果有人能启发我,我将不胜感激。谢谢你。

4

3 回答 3

1

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

-> .9.png 图像在图像周围有黑色边框,表明它是补丁。

->在可绘制文件夹中具有 .9.png 的图像被识别为 9-patch 图像,因此 9 个补丁图像必须具有 .9.png 作为扩展名

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

你有2个选项。从按钮中删除补丁为所有 android 可绘制大小重新创建它。或在可绘制文件夹中保留 9 个补丁图像,其扩展名为 .9.png。

于 2013-10-16T05:08:33.590 回答
1

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

如果运行的设备 dpi 与分辨率文件夹不一样,听起来 Android 甚至会拉伸边框区域(静态区域),例如,如果您只将 .9.png 复制到可绘制文件夹中,边框将被拉伸为 3 倍宽如果在 dpi 为 3 的设备上运行。

于 2014-01-24T12:01:46.817 回答
0

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

img_common_white_button_bg_pressed.9.png 。

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

阅读官方文档:Draw 9-patch

于 2013-10-16T05:04:33.840 回答