我想改变按钮的颜色。让我们说:蓝色。我们如何在ripple.xml
文件中添加实际上是按钮属性的按钮颜色?从下面的代码中,按钮的颜色是透明的。
content_main.xml中的按钮
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ripple"
android:text="Hello World!" />
ripple.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:color="#f816a463"
tools:targetApi="lollipop">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="#f816a463" />
</shape>
</item>
</ripple>
EDIT1
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:color="#16a463"
tools:targetApi="lollipop">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="#16a463" />
</shape>
</item>
</ripple>
答案 0 :(得分:1)
问题是android:id="@android:id/mask"
。我认为它提供了android的自定义值。
尝试这个......
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item android:drawable="@drawable/button_normal" />
</ripple>
输出: -
您必须为此动画使用选择器....
anim.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/ripple"/>
<item android:drawable="@drawable/button_normal"/>
</selector>
并在button_normal.xml
.....
并在按钮背景中设置anim.xml
.....
注意: - Ripple正在使用API级别21及以上.......
答案 1 :(得分:0)
ripple_drawable.xml //将其放在drawable-v21文件夹
中<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item android:id="@android:id/mask">
<shape android:shape="oval">
<solid android:color="@color/your_color" />
</shape>
</item>
</ripple>
注意:涟漪效果仅适用于Android 5.0及以上版本
答案 2 :(得分:0)
根据你的问题,你想改变颜色吧?
只需更改<solid android:color="#f816a463"
ripple.xml
的值即可
F816A463
前两位数字F8
表示不透明度,如果您想要纯色,请删除前两位数字,例如:#ff1122
答案 3 :(得分:0)
如果您的目的只是设置按钮的背景颜色,请在初始化按钮后在onCreate
方法中尝试此操作
Button yourBtn = (Button) findViewById(R.id.yout_btn_id);
yourBtn.setBackgroundColor(getResources().getColor(R.color.your_color));
并在值文件夹
下的your_color
文件中定义color.xml
值资源