【问题标题】:Android nine-patch not being recognized on deviceAndroid 九补丁无法在设备上识别
【发布时间】:2021-06-10 03:11:47
【问题描述】:

我刚做了九个补丁

它像从draw 9补丁工具中保存的border.9.png一样。

在我的 android 布局编辑器中,它看起来像是一个适当的 9 补丁图形,被拉伸但没有像素化。

然而在真实设备上,它只是显示一个巨大的拉伸图像,看到 9patch 指南,它看起来真的很糟糕

怎么了???以及如何解决它

我的 xml:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/border"
        android:orientation="vertical"
        android:padding="35dip" >

【问题讨论】:

    标签: android xml background nine-patch


    【解决方案1】:

    我刚刚遇到了同样的问题:Eclipse 中一切正常,但在设备上都出现了问题。 我通过在Draw 9-patch tool 中打开PNG 来解决它。 只需打开 png 并保存即可!

    【讨论】:

    • +1。这正是发生在我身上的事情。给我的 9-patch PNG 在模拟器/设备上无法正常工作,直到我在 Draw 9-patch 工具中打开/保存它们(尽管它们在 GUI 布局构建器中看起来不错)。魔术。
    【解决方案2】:

    您可以找到如何创建 9.patch here 的所有必要信息

    你的背景应该是这样的

    注意:底部和右侧的标记需要绘制成完整的线,而不是单点。

    编辑
    好像这里上传的9.patch变了,不能再当9.patch了。
    功能版可以从here下载

    【讨论】:

    • 谢谢!我现在明白了,我不得不再次调整它,但它对我有用!
    【解决方案3】:

    对我来说,这看起来像是无效的 9.ptach 文件。底部和右侧应该有实心区域。

    【讨论】:

    • +1 对我有用:作为内容标记的单点在 draw9patch 实用程序和 ADT 布局编辑器中看起来不错,但要在设备上工作,内容标记(底部和/或右侧) 需要画成一条完整的线。
    【解决方案4】:

    作为最后的手段,每当您难以识别 9 补丁时,我发现最好只在您的成像软件中制作一个全新的图像文件,复制除 4 1 之外的所有图像文件-原始图像的像素边框,然后粘贴到新图像文件中。有时,无论您删除多少 4 个边缘,设备/模拟器仍然无法将其识别为 9 补丁,即使(这可能是 Android SDK 开发团队应该关注的)它是一个非常好的 9 - Eclipse 图形布局中的补丁。

    另请注意,右侧和底部边缘的黑线是可选的。他们指定“填充”,特别是内容(具有 9-patch 背景的父级的子级)适合的区域。

    【讨论】:

      【解决方案5】:

      我花了几个小时才弄明白为什么我的九个补丁没有正确渲染。

      原因很简单。我的九个补丁图像存储在:

      /res/drawable
      

      而不是

      /res/drawable-xxx
      

      【讨论】:

        猜你喜欢
        • 2012-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多