当按钮有涟漪效应时,更改按钮属性中按钮的颜色(出现)

问题描述:

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

使用'#16a463'六位数的颜色。 8位数字包含透明颜色的颜色。 – sushildlh

+0

@sushildlh在哪里添加背景颜色? – Humty

+0

in the ripple.xml'android:color =“#16a463”'这里使用的蓝色代码只有6位数...... – sushildlh

ripple_drawabl e.xml //这个地方绘制-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及以上

+0

它不会更改button的colorrrrrrrrrrrrrr。 – Humty

+0

你正在测试哪个版本的android? – SaravInfern

+0

我想改变按钮的颜色。当我点击按钮时,它会变成灰色的颜色。但按钮仍然是白色的。我改变了按钮的颜色。 – Humty

连锁反应只会工作? 只是改变<solid android:color="#f816a463"的价值ripple.xml

F816A463 

颜色F8的前两位数字是指不透明度,如果你想纯色,请删除前两个数字,例如:#ff1122

+0

我希望认为这是不正常的,因为它是在他的问题(但我可以感到惊讶......) – AxelH

问题是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 .....

注: - 纹波正在API级别21以上 .......

+0

很好的捕获,首先在一个可绘制的布局中设置一个id是什么? – AxelH

+0

我对此没有足够的想法..... @AxelH请分享,如果你发现点.... – sushildlh

+0

@sushildlh涟漪效应现在不适用于你的代码。只是它的按钮颜色。点击按钮时没有任何事情发生。 – Humty

,如果你的目的是只设置按钮的背景颜色onCreate方法试试这个初始化你的按钮

Button yourBtn = (Button) findViewById(R.id.yout_btn_id); 
yourBtn.setBackgroundColor(getResources().getColor(R.color.your_color)); 

后,在你color.xml文件中定义your_color值的资源下值夹