5

我使用九个补丁图像作为选择器项目元素的可绘制对象。九个补丁图像在这里:

9 补丁图像

最终渲染的图像是这样的(模拟器和设备屏幕截图,两个设备的分辨率 > mdpi):

生成的渲染图像

如您所见,它已在可拉伸区域(如 9 补丁文件中定义)之外进行了缩放,深绿色条比应有的粗得多。为什么会这样,可以避免吗?draw9patch 工具可以正确缩放此图像。它是否与 Android 试图在高分辨率设备上保留物理尺寸有关?

4

2 回答 2

6

您只提供图像的 mdpi 版本吗?

Android 会以正确的像素密度缩放所有不可用的图像。这发生在图像通过 9patch 缩放之前。

这意味着您的图像被放大以适合 hdpi,然后被缩放以适合内容。

要解决此问题,您必须提供图像的 hdpi 和 xhdpi 版本。9patch 不应该针对不同的像素密度和不同的内容/屏幕尺寸。

于 2013-02-07T15:17:06.547 回答
3

我检查了你的 9 补丁:

在此处输入图像描述

为什么将未使用的边界涂成白色?它应该是透明的。因此,它不被识别为 9Patch:

在此处输入图像描述

于 2013-02-07T15:18:17.653 回答