Android选择器与背景图像和渐变

我知道有相似的post,但我找不到任何一个答案。 所以,我有这个可绘制的XML:

                     

我正在尝试创建一个按钮,其中重复的图像作为背景并应用了渐变。 使用此代码,我只看到背景图像,而不是渐变,边框和圆角。 此外,当我单击按钮时,它不会更改(渐变应该更改)。 我不知道这段代码有什么问题? 如果我使用图层列表代替选择器,我会得到所需的结果,但是当我按下按钮时它也不会改变。 谢谢你的帮助!

Related of "Android选择器与背景图像和渐变"

您的选择器代码错误,因为:

  • 你有两个元素用于相同的状态,并且当选择器遇到Bitmap元素的第一个状态( state_enabled )时它将停在那里并且你的渐变将永远不会出现(为此你应该使用一个包含Bitmap作为项目的layer-list顶部的渐变)

  • 选择器将按顺序匹配状态。 当您按下Buttonstate_pressed将永远不会被激活,因为选择器将首先匹配第一个元素上的state_enabled (为此,您应该移动state_enabled元素上方的state_pressed的代码)。

实际上你应该删除state_enabled并让Bitmap + gradient成为Button的默认值。 贝娄是你的选择器(我假设你只想改变图像上的渐变(但是图像应该出现在按下状态,如果这不是想要的行为,只留下state_pressed的渐变)):

 < ?xml version="1.0" encoding="utf-8"?>                                 

看一下你所处的状态

 < ?xml version="1.0" encoding="utf-8"?>            

要将背景重复为图像,您只需创建9个俯仰图像。

在我的情况下,我正在使用这个。 尝试一下

                         

我使用photoshopcanvas大小选项在图像的右侧添加了额外的transperent空间,它对我来说很好。 下载下面的图像以查看演示。 在此处输入图像描述