0

样品按钮

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

谢谢!

编辑:

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

4

4 回答 4

3

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

于 2011-06-16T05:29:37.327 回答
3

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

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

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

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

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/
     ...
于 2011-06-16T05:37:29.003 回答
0

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

于 2011-06-16T05:30:20.907 回答
0

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

于 2011-06-16T05:58:50.000 回答