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