2017-01-05 5 views
4

ich heruntergeladen eine Reihe von Material Icons von hier:Farbe der Materialikonen ändern?

https://material.io/icons/

Ich bin verwirrt, wie ich die Farbe dieser Symbole als Drawables ändern. Ich habe eine Button mit einem Symbol in der drawableLeft Eigenschaft, und dann eine Reihe von ImageButton mit den Ikonen eingestellt, etwa so:

<Button 
    android:text="Hey" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableLeft="@drawable/ic_arrow_upward_black_24dp" 
    android:stateListAnimator="@null" /> 

<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:srcCompat="@drawable/ic_arrow_downward_black_24dp" 
    android:background="@null" /> 

Wie ändere ich die Farbe der Icons für die einzelnen?

Außerdem, wenn die Symbole, die ich heruntergeladen habe schwarz sind, wie kann ich die Farbe der Symbole zu einer Farbe mit Transparenz ändern?

Antwort

3

das android:tint="@color/somecolorresource" Attribut unterstützen

android:tint="@color/black" 
android:tintMode="@color/black" 
+0

Welche Versionen von Android ist dies kompatibel mit aussehen? Was ist mit "Button"? –

+0

Wenn ich versuche, eine transparente Farbe auf diese Weise zu setzen, erscheinen sie meistens schwarz (ich nehme an, weil das heruntergeladene Symbol schwarz ist und der Farbton nur die transparente Farbe über dem Schwarz anwendet, anstatt das Schwarz zu ersetzen) . –

0

Alle der appcompat Widgets zu Ihrem Image in Ihrer XML-Layout-Datei Fügen Sie diese. Wenn Ihre Aktivität/Ihr Fragment AppCompatActivity/Fragment erweitert, funktioniert dies für alle ImageView/TextView/ImageButton/....

Siehe: https://stackoverflow.com/a/37261384/3662251

+0

Wenn ich versuche, eine transparente Farbe auf diese Weise zu setzen, erscheinen sie meistens schwarz (ich gehe davon aus, dass das heruntergeladene Symbol schwarz ist und der Farbton nur die transparente Farbe über dem Schwarz anwendet, anstatt das Schwarz zu ersetzen). –

+0

Der Farbton wird mit einem Farbfilter aufgetragen. Dies führt höchstwahrscheinlich dazu, dass die tatsächliche Farbe "ausläuft", wenn Sie eine transparente Farbe verwenden. –

+1

Sie können eine reguläre Farbe verwenden und das Attribut 'android: alpha = "0.5" 'in der Ansicht verwenden, um es transparent zu machen. –

1

Wenn Ihre Symbole Vektoren sind, können Sie die XML-Datei bearbeiten und die android:fillColor Attribut ändern. Wenn es sich bei den Symbolen um Bitmaps handelt, können Sie dem ImageButton das Attribut android:tint hinzufügen.

0

Diese link ist ideal zum Bearbeiten von Symbolen, Sie können auch Symbole mit transparentem Hintergrund erzeugen. hoffe das hilft.

19

Sie erkennen das Material Icons bei https://material.io/icons/ Alle jetzt in Android Studio verfügbar sind, Keine Notwendigkeit sogar herunterladen. Einfach Rechtsklick auf Drawables> Neu> Vector Asset-

Sie erhalten einen Dialog wie

this

Nach Klick auf das kleine Android Symbol, wählen Sie Ihr Bild und speichern bekommen. Dies wird die eine xml ziehbar schaffen, die geöffnet werden können und

hier nach Ihren Wünschen bearbeitet ist, wie es wie

<vector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:alpha="0.8" <!--set the transparency from here --> 
     android:width="24dp" 
     android:height="24dp" 
     android:viewportWidth="24.0" 
     android:viewportHeight="24.0"> 
    <path 
     android:fillColor="#FF000000" <!-- Use this for setting your color --> 
     android:pathData="M9.4,16.6L4.8,12l4.6,-4.6L8,6l-6,6 6,6 1.4,-1.4zM14.6,16.6l4.6,-4.6 -4.6,-4.6L16,6l6,6 -6,6 -1.4,-1.4z"/> 
</vector> 
+1

Ich möchte mehr Accounts erstellen, damit ich diese Antwort öfter beantworten kann. Google muss seine Materialicons-Website aktualisieren, um diese Informationen zu berücksichtigen! – Robert

+1

Vektor-Drawables hatten in früheren Android-Versionen nur eine geringe Unterstützung (die Verwendung mehrerer PNGs erforderlich). Mit den neuesten Versionen von AppCompat können Sie Vektorzeichnungen auch bei älteren Versionen verwenden: https://stackoverflow.com/questions/40678947/how-to-properly-use-backwards-compatible-vector-drawable-with der neueste Android – mkasberg