【问题标题】:9 patch image is scaled at the wrong positions9 补丁图像在错误的位置缩放
【发布时间】:2013-02-07 15:13:05
【问题描述】:

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

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

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

【问题讨论】:

  • 让我们看看你绘制图像的代码。

标签: android image scaling nine-patch


【解决方案1】:

您是否只提供图像的 mdpi 版本?

Android 会缩放所有无法以正确像素密度显示的图像。这发生在图像通过 9patch 缩放之前。

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

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

【讨论】:

  • 只有一个版本(放在drawable文件夹中)。因此,您概述的过程似乎解释了我面临的问题。太糟糕了,虽然我可以避免为所有这些不同的物理分辨率创建图像......
【解决方案2】:

我查看了你的 9 补丁:

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

【讨论】:

  • 白色边框是我个人的最佳实践,因为它避免了近乎透明的像素出现在外边框上。到目前为止,我从来没有遇到过这个问题。我仔细检查了这一点:红色条纹(无论它们是什么意思)也出现在完全透明的边框上。
猜你喜欢
  • 2016-07-27
  • 2011-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 2016-11-22
相关资源
最近更新 更多