Search code examples
androidandroid-studiovector-graphicsandroid-vectordrawable

Change fill color on vector asset in Android Studio


Android Studio now supports vector assets on 21+ and will generate pngs for lower versions at compile time. I have a vector asset (from the Material Icons) that I want to change the fill color. This works on 21+, but the generated pngs do not change color. Is there a way to do this?

<vector android:height="48dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/primary" android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>


Solution

  • Don't edit the vector assets directly. If you're using a vector drawable in an ImageButton, just choose your color in android:tint.

    <ImageButton
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:id="@+id/button"
            android:src="@drawable/ic_more_vert_24dp"
            android:tint="@color/primary" />