如果我想将图像用作按钮背景,我该怎么做?9补丁?还是固定图像(ldip/mdip/hdip)?
谢谢!
编辑:
感谢两位回复,我知道draw9patch这个工具,但是我不知道如何定义垂直区域,这样就不会破坏渐变?谢谢!
如果我想将图像用作按钮背景,我该怎么做?9补丁?还是固定图像(ldip/mdip/hdip)?
谢谢!
编辑:
感谢两位回复,我知道draw9patch这个工具,但是我不知道如何定义垂直区域,这样就不会破坏渐变?谢谢!
我相信 9-patch 将是更优雅的解决方案。您可以使用 Android SDK 中“tools”文件夹中的“draw9patch”工具来执行此操作。Android 官方文档很好地概述了如何使用它:http: //developer.android.com/guide/developing/tools/draw9patch.html
要创建自定义按钮,您需要:
一个<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/
...
它绝对应该是 9-patch。您将不得不仔细选择可拉伸区域,以免破坏渐变。使用该工具预览它在按钮上的外观。
我不确定它是否看起来不错,但由于 9-patch 实际上允许您设置多个可拉伸区域,您可以尝试设置多个 1 像素高的垂直区域,并让所有这些拉伸(基本上,有一个可拉伸的每 2 个像素行)。这看起来不如渐变效果完美,但如果你不拉伸它可能就足够了。