我想像这样自定义按钮
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#EAEAEA"/>
<corners android:topLeftRadius="8dip"
android:bottomRightRadius="8dip"
android:bottomLeftRadius="1dip"
android:topRightRadius="1dip"
/>
<item android:drawable="@drawable/photo2"
android:state_pressed="true" />
<item android:drawable="@drawable/photo1" />
但是
<item android:drawable="@drawable/photo2"
android:state_pressed="true" />
<item android:drawable="@drawable/photo1" />
它不起作用(如果它工作,当按或按下按钮时它将改变按钮背景)
我该怎么办?
答案 0 :(得分:4)
首先导入LightningColorFilter
,然后您可以通过应用此代码更改颜色:
Start_Button.getBackground().setColorFilter(new LightingColorFilter(0x11111111, 0x11111111));
这是放在你的活动内,而不是XML文件。
答案 1 :(得分:1)
将样式和颜色设置为默认按钮将此代码设置为任何新的xml,并为此背景提供orgnal按钮,如下所示:
在orignal按钮布局xml中: - 的Andorid:背景= “@绘制/ mylayout”
在mylayout.xml中: -
<item android:state_pressed="true" >
<shape>
<gradient
android:startColor="@color/yellow1"
android:endColor="@color/yellow2"
android:angle="270" />
<stroke
android:width="3dp"
android:color="@color/grey05" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item android:state_focused="true" >
<shape>
<gradient
android:endColor="@color/orange4"
android:startColor="@color/orange5"
android:angle="270" />
<stroke
android:width="3dp"
android:color="@color/grey05" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:endColor="@color/blue2"
android:startColor="@color/blue25"
android:angle="270" />
<stroke
android:width="3dp"
android:color="@color/grey05" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
并更改焦点按钮或单击事件尝试设置onfocuschnage其他布局:
<item android:state_focused="true" >
并设置不同颜色以更改按钮颜色或样式..