按钮具有涟漪效果时,更改按钮属性中按钮(显示)的颜色

时间:2016-11-22 06:32:49

标签: android xml

我想改变按钮的颜色。让我们说:蓝色。我们如何在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>

4 个答案:

答案 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>

输出: -

enter image description here

您必须为此动画使用选择器....

  

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值资源