2016-11-22 2 views
1

Ich möchte die Farbe der Schaltfläche ändern. Sagen wir: Blau. Wie können wir Farbe der Schaltfläche in ripple.xml Datei hinzufügen, die eigentlich die Eigenschaften der Schaltfläche ist? Aus dem unten stehenden Code ist die Farbe der Schaltfläche transparent.Ändern Sie die Farbe der Schaltfläche (erscheint) in Schaltflächeneigenschaften, wenn die Schaltfläche Ripple-Effekt hat

Knopf in 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

Verwenden Sie '# 16a463' sechsstellig für die Farbe. 8 Ziffern enthalten Farbe mit transparenter Farbe. – sushildlh

+0

@sushildlh Wo Hintergrundfarbe hinzufügen? – Humty

+0

in der ripple.xml 'android: color =" # 16a463 "' verwenden Sie hier blauen Farbcode in nur 6 Ziffern .... – sushildlh

Antwort

0

ripple_drawabl e.xml // Ort dies in ziehbar-v21 Ordner

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

Hinweis: Ripple-Effekt funktioniert nur auf Android 5.0 und höher

+0

Es ändert sich nicht die colorrrrrrrrrrrrrr der Schaltfläche. – Humty

+0

welche Version von Android testen Sie? – SaravInfern

+0

Ich möchte die Farbe der Schaltfläche ändern. Wenn ich auf den Knopf klicke, wird die Farbe grau. Aber der Knopf ist immer noch weiß. Ich ändere die Knopffarbe. – Humty

0

Auf der Grundlage Ihrer Frage ist, wollen Sie die Farbe ändern, nicht wahr? einfach den Wert von <solid android:color="#f816a463" in ripple.xml

F816A463 

ersten beiden Ziffern der Farbe ändern F8 bedeutet, dass die Opazität, wenn Sie feste Farbe wünschen, entfernen Sie bitte die ersten beiden Ziffern zB: #ff1122

+0

Ich hoffe zu glauben, dass das nicht funktionierte, wie es in seiner Frage ist (aber ich könnte überrascht sein ..) – AxelH

1

Problem ist android:id="@android:id/mask" . Ich denke, es bietet den benutzerdefinierten Wert von Android.

versuchen diese .....

 <ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="?android:colorControlHighlight"> 
    <item android:drawable="@drawable/button_normal" /> 
</ripple> 

Ausgang: -

enter image description here

Sie haben die Wahl für diese Animation verwenden ....

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> 

und stellen Sie Farbe in button_normal.xml .....

Standard und stellen anim.xml in Ihrem Button Hintergrund .....

HINWEIS: - Restwelligkeit arbeitet auf API-Ebene 21 und über .......

+0

Netter Haken, was ist der Punkt, um eine ID in einem aufklappbaren Layout in erster Linie zu setzen? – AxelH

+0

Ich habe nicht genug Ahnung davon ... @AxelH bitte teilen Sie, wenn Sie den Punkt finden .... – sushildlh

+0

@sushildlh Der Welleneffekt funktioniert nicht in Ihrem Code jetzt. Nur seine Knopffarbe. Nichts passiert, wenn Sie auf den Button klicken. – Humty

0

wenn Ihre Absicht ist nur die Hintergrundfarbe der Taste die diese in onCreate Methode versuchen, nach der Sie Ihre Schaltfläche Initialisieren

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

und definieren den your_color Wert Ressource in Ihrer color.xml Datei unter Werte

Ordner
Verwandte Themen