1

我不明白,为什么这个 9patch 图像没有在我的 android 应用程序中设置为 Ninepatch。出于某种原因,它将其显示为常规 png 文件。

奇怪的是,draw9patch 工具和 Eclipse 内置 UI 设计器都正确显示了图像(它正在正确展开),但在 nexus 7 上却没有。

我附上图片。

Google+ 按钮 9patch

这不是文件名,因为 9patch 是使用 draw9patch 工具创建的,文件名是“ google_button.9.png

这是 XML 代码

<Button
            android:id="@+id/btn_googleplus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:background="@drawable/google_button"
            android:minWidth="300dp"
            android:text="@string/login_login_with_google"
            android:textColor="#ffffffff"
            android:textStyle="bold"
            android:textSize="19sp"
            android:layout_marginTop="15dp"/>
4

4 回答 4

0

看来 9-patch 不行,我简化成了这个。请试一试。当我使用 9-patches 时,我只放置顶部和左侧边缘标记;我想在 png 周围放置标记在某些时候会造成混乱。

9 补丁图像更新

于 2013-04-17T16:57:39.543 回答
0

确保它在 drawable-hdpi 中,否则它会重新缩放,并且一个像素黑色有时无法很好地缩放。对于此类图像,最好将它们用于所有 dpi

于 2013-04-17T17:07:35.733 回答
0

9patch 图像的背景是全透明的还是白色的?

API 指南说,

边框用于定义图像的可拉伸和静态区域。您可以通过在边框的左侧和顶部绘制一条(或多条)1 像素宽的黑线来指示可拉伸部分(其他边框像素应完全透明或白色)。

于 2013-04-17T17:23:59.020 回答
0

Lefteris,我发现本教程有助于理解为什么我在 Photoshop 中创建的 NinePatch 图像(图像和指南)存在问题:

http://radleymarx.com/blog/simple-guide-to-9-patch/

具体来说,这一段:

您还应该记住,一像素轮廓的剩余区域必须完全透明。这包括图像的四个角——它们应该始终清晰。这可能是一个比你意识到的更大的问题。例如,如果您在 Photoshop 中缩放图像,它将添加抗锯齿像素,其中可能包括几乎不可见的像素,这也会导致图像失败*。如果您必须在 Photoshop 中缩放,请使用“重新采样图像”下拉菜单(位于“图像大小”弹出菜单的底部)中的“最近邻”设置来保持参考线的锐利边缘。

我发现首先在 Photoshop 中准备图像,然后使用 draw9patch 工具绘制指南是创建工作NinePatch 图像的最佳方式。该工具的好处是它会指出有问题的区域。如前所述,右侧和底部指南不是必需的,因为您可以通过将 1px 边框从您不想拉伸的顶部和左侧区域中轻松指定内容区域 - 以下是我需要放置的示例横幅屏幕的底部。我需要确保两个内容区域都没有延伸。此外,我还想确保左侧内容区域的左侧和右侧内容区域的右侧不会发生拉伸:

在此处输入图像描述

希望这可以帮助。

于 2014-01-30T01:16:31.443 回答