Estoy usando una imagen de fondo en mi barra de herramientas y, por alguna razón, la barra de herramientas funciona solo con mipmap y no con dibujable.
En mi archivo app_bar_main.xml:
<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@mipmap/bar" app:popupTheme="@style/AppTheme.PopupOverlay" />Como puede ver, he usado mipmap en lugar de drawable, aunque cuando estoy usando drawable, la aplicación falla y aparece el siguiente error:
Línea de archivo XML binario n.º 11: Línea de archivo XML binario n.º 16: Error al inflar la clase android.support.v7.widget.Toolbar
Debo mencionar que el uso de este mipmap solo hace que mi aplicación sea muy lenta y salta marcos, por lo que me gustaría cambiarlo a dibujable.
¿Cómo puedo cambiar el recurso de fondo de la barra de herramientas de la imagen de mipmap a dibujable?
EDITAR:
Estilo.xml
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> <style name="LightDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="android:textColor">@android:color/primary_text_light</item> <item name="background">@drawable/bar</item> </style> <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> </resources>Parece que su archivo xml es perfecto. Lo que sugiero, simplemente cambie el tamaño de esa imagen o prepare una imagen de fondo con un tamaño diferente, que desee configurar en su barra de herramientas y colóquela en diferentes carpetas dibujables / mipmap.
android:fondo="@mipmap/barra"
como sabemos, el tamaño del icono debe ser,
- drawable-ldpi (120 dpi, pantalla de baja densidad) - 36px x 36px
- drawable-mdpi (160 dpi, pantalla de densidad media) - 48px x 48px
- drawable-hdpi (240 dpi, pantalla de alta densidad) - 72px x 72px
- drawable-xhdpi (320 dpi, pantalla de densidad extra alta) - 96px x 96px
Ejecute su aplicación nuevamente y hágamelo saber.
Agregue este código en el archivo build.gradle de su aplicación
android { defaultConfig { ..... vectorDrawables.useSupportLibrary = true } }barra_herramienta_predeterminada.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar style="@style/ToolBarStyle" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:minHeight="@dimen/abc_action_bar_default_height_material"/>ToolBarStyle
<style name="ToolBarStyle" parent=""> <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item> <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item> </style>Otro Elimine la siguiente línea de su barra de herramientas e intente verificar si funciona o no. No estoy seguro, pero solo verifíquelo.
app:popupTheme="@style/AppTheme.PopupOverlay"Espero que esto ayude
barra de herramientas.xml
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" style="@style/MyToolbarStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical">Temas/Estilo
<style name="MyToolbarStyle"> <item name="android:maxHeight">@dimen/abc_action_bar_default_height_material</item> <item name="android:background">@color/primary</item> <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item> <item name="titleTextAppearance">@style/Theme.Toolbar.Title</item> <!-- No need for colorPrimary, colorPrimaryDark, colorAccent here this should go to the AppTheme -->Prueba este método, funciona..