【问题标题】:Android: possible to use 9 patch to draw the button? (see image)Android:可以使用 9 补丁来绘制按钮吗? (见图)
【发布时间】:2011-06-16 05:26:10
【问题描述】:

如果我想将图像用作按钮背景,我该怎么做? 9补丁?还是固定图像(ldip/mdip/hdip)?

谢谢!

编辑:

感谢两位回复,我知道draw9patch这个工具,但是不知道怎么定义垂直区域才不会破坏渐变? 谢谢!

【问题讨论】:

  • 我会使用draw9patch.com 而不是SDK 自带的工具。这个工具很糟糕,网络版要容易得多。

标签: android button colors nine-patch


【解决方案1】:

我相信 9-patch 会是更优雅的解决方案。您可以使用 Android SDK 中“tools”文件夹中的“draw9patch”工具来执行此操作。 Android 官方文档很好地概述了如何使用它:http://developer.android.com/guide/developing/tools/draw9patch.html

【讨论】:

  • 由于您的按钮有 2 种颜色,因此仅在 y 轴上标记了几 (2-3) 个像素。
【解决方案2】:

要创建您需要的自定义按钮:

  • 一个<selector>(状态列表)drawable,它引用了默认/按下/聚焦/禁用/等的不同drawable。州。

  • 每个状态都应该有一个可在每个密度 (ldpi/mdpi/hdpi/xhdpi) 中绘制的九个补丁 (.9.png)。请注意,该框架可以按比例放大或缩小,因此您不需要为每个密度提供九个补丁,但为了获得最佳效果,您应该这样做。

    李>

因此,您的自定义按钮 drawable 使用以下文件夹结构:

res/
  drawable/
     mybtn.xml                # <selector> (state list)
  drawable-hdpi/
     mybtn_default.9.png
     mybtn_pressed.9.png
     mybtn_focused.9.png
     mybtn_disabled.9.png
  drawable-mdpi/
     mybtn_default.9.png
     mybtn_pressed.9.png
     mybtn_focused.9.png
     mybtn_disabled.9.png
  drawable-xhdpi/
     ...

【讨论】:

    【解决方案3】:

    绝对应该是 9-patch。您将不得不仔细选择可拉伸区域,以免破坏渐变。使用the tool 预览按钮的外观。

    【讨论】:

      【解决方案4】:

      我不确定它是否看起来不错,但由于 9-patch 实际上允许您设置多个可拉伸区域,您可以尝试设置多个 1 像素高的垂直区域,并让所有这些拉伸(基本上,每 2 个像素有一条可拉伸的线)。这看起来不如渐变效果完美,但如果你不过度拉伸它可能就足够了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-16
        • 2016-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多