studio opciones herramientas hacer como barra bar actionbar acciones android android-toolbar android-vectordrawable

opciones - ¿Cómo puedo usar VectorDrawable con la barra de herramientas de Android?



menu overflow android studio (1)

Resulta que es bastante fácil. Digamos que tienes un vector vd_trash_24dp .

Describiendo MenuItem, no se puede abordar VectorDrawable directamente con el android:icon . Parece ignorar la app:srcCompat también.

Pero. Como todos sabemos ;)

AppCompat admite la carga de vectores dibujables cuando se hace referencia en otro contenedor dibujable, como StateListDrawable, InsetDrawable, LayerDrawable, LevelListDrawable y RotateDrawable

Vamos a intentarlo, ¿deberíamos?

Crear StateListDrawable vd_test_vd

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/vd_trash_24dp" /> </selector>

que

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <item android:id="@+id/menu_action_filter" android:title="@string/menu_action_filter" android:icon="@drawable/vd_test_vd" android:orderInCategory="100" app:showAsAction="always"/> </menu>

De hecho la magia callejera.

Sí, se podría intentar establecer dibujable en tiempo de ejecución con MenuItem.setIcon() . Pero quien necesita ese%)

¿Cuál es el método adecuado para usar el nuevo VectorDrawable en la barra de herramientas?

Intenté usar la app:srcCompat elemento app:srcCompat como se ilustra a continuación, pero no apareció nada.

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item app:srcCompat="@drawable/ic_clear" app:showAsAction="ifRoom" /> </menu>

Tengo mi propio diseño de barra de herramientas con android.support.v7.widget.Toolbar y Android Support Library v23.2 en JB (16).