1

我使用 9-patch 文件作为按钮背景,而 draw9patch 工具验证该文件,在 Android Studio 中,它使用工件和裁剪进行渲染。我不确定这是 Android Studio 中的错误还是我的 9-patch 中的错误。这是按钮的代码,如果有帮助的话。

<ImageButton
            android:layout_width="fill_parent"
            android:layout_height="40dp"
            android:id="@+id/imageButton"
            android:layout_weight="1"
            android:src="@drawable/tool_panel_share_icon_default"
            android:baselineAlignBottom="true"
            android:background="@drawable/view_type_button_background_left_default"
            android:scaleType="fitCenter"
            />

这是我的 9 补丁:

9补丁文件

这是我认为它应该在按钮上的样子:

在此处输入图像描述

但这是我实际得到的(底线是深色背景上的 26% 透明度):

在此处输入图像描述

你可以看到左边有一条错误的黑线,而应该在右边的黑线显然被裁剪了。

更新:

这是实际的 9-patch 文件,我之前发布的是文件的屏幕截图,以便查看详细信息。

在此处输入图像描述

更新2:

好的,我想出了如何让它正确显示,但我仍然不明白最初失败的原因。我意识到,如果我将顶部标记放在作为 9-patch 内容一部分的黑色线旁边,它会失败;但是,如果我将它向左移动 1 个像素,它会正确呈现。

作品: 在此处输入图像描述

失败: 在此处输入图像描述

这是新的 9-patch 和成功渲染的屏幕截图:

在此处输入图像描述

在此处输入图像描述

更新 3:

我刚刚使用 draw9patch 工具重新创建了 9-patch,并且行为是相同的。

4

4 回答 4

1

我曾经遇到过与您类似的问题。

我猜你将九个补丁图像放在分辨率低于设备的文件夹中。

当设备尝试获取图像时,它需要放大图像并且您的顶部标记正好位于渐变区域的“边界”处在此处输入图像描述

这可能会导致缩放后的图像不可预测。

于 2013-07-24T23:20:15.593 回答
1

我下载了你提供的9patch png,下图是你的png左边黑点,不正确。9patch png的边框应该只有1个像素宽,并且只能使用黑色作为颜色,即(0, 0, 0)。

查看此页面以获取更多信息。

在此处输入图像描述

于 2013-07-20T02:57:30.587 回答
0

你用

...\Android\android-sdk\tools\draw9patch.bat

画你的形象?这真的很有帮助,并显示了初步结果。

于 2013-07-27T23:36:14.550 回答
0

你把它弄得太高了。

试着让它像我发布的那样。

在此处输入图像描述

于 2013-07-20T02:35:25.923 回答