【问题标题】:9-patch stretching when it shouldn't stretch, Android不应该拉伸的 9 补丁拉伸,Android
【发布时间】:2010-08-18 06:39:18
【问题描述】:

我正在尝试将 9-patch 图像设置为我的一项活动的背景,但它不必要地拉伸,使一切变得奇怪。我使用draw9patch创建它,并在左下角添加一个像素,在右上角添加一个像素。然后我将它作为 intro_bg.9.png 保存到我的 drawables 目录中。我想拉伸最底部并拉伸最右侧,但前提是它也有。如果没有,那么我希望它保持机智。

当我将它设置为父布局的背景时,它会水平和垂直拉伸它,当我在我的机器人上运行它时它甚至不显示我的按钮。

我已经完成了 Google 搜索,但没有关于如何让这样的东西正常工作的好信息。我错过了什么?

我还尝试了一些其他配置,包括使用填充边(右侧和底部),但结果相同。

谢谢

设置为背景的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/intro_bg"
>

看起来像:

应该看起来像:

【问题讨论】:

  • 你应该发布9patch图像,也许是截图,这样更容易理解。以及您的 xml 布局代码的相关部分。
  • 图片的尺寸是多少?我觉得它太大了。
  • 我制作成 9-patch 的原始 .png 是 475x845。这种东西有推荐的尺寸吗?
  • 我继续尝试显示所有图像,但现在左上角太小了,按钮仍未显示。

标签: android image background android-image


【解决方案1】:

您的图片太大,不适合布局。如果你想让它收缩,你需要在顶部和左边界上画一条线——这条线标志着将被收缩或拉伸的区域。我猜现在你的边框上只有点。

第二个选项是将图像设置为活动背景,然后它将适合屏幕。为此,请将 styles.xml 添加到 res/values 文件夹:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ExampleTheme" parent="android:Theme">
    <item name="android:windowBackground">@drawable/intro_bg</item>
</style>
</resources>

然后将主题应用到清单中的活动。 intro_bg drawable 甚至不需要是 9-patch。

【讨论】:

  • 变小没有用。我将如何将其设置为我的活动的背景?
  • 我没有提到让它变小。只需在九个补丁的顶部和左侧边框上画更长的线即可。
  • 你把线条画得更大是对的。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多