icono - personalizar action bar android studio
Cómo personalizar el botón Atrás en ActionBar (8)
El indicador de disponibilidad "arriba" es provisto por un drawable especificado en el atributo homeAsUpIndicator
del tema. Para anularlo con su propia versión personalizada, sería algo como esto:
<style name="Theme.MyFancyTheme" parent="android:Theme.Holo">
<item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
</style>
Si está soportando pre-3.0 con su aplicación, asegúrese de colocar esta versión del tema personalizado en values-v11
o similar.
Pude personalizar el fondo de la barra de acciones, la imagen del logotipo y el color del texto con las sugerencias de estos:
Android: ¿Cómo cambiar el icono "Inicio" de ActionBar para que sea algo más que el ícono de la aplicación?
Color del texto ActionBar
Imagen de fondo de ActionBar
La última pieza que quiero personalizar es la imagen del botón Atrás. Es gris por defecto y me gustaría que sea blanco. Cambiar el color, especificar un dibujante o simplemente hacerlo transparente (y agregar el cheurón a mi imagen de logotipo personalizada) funcionaría. ¿Cómo hago eso?
He verificado la pregunta. Aquí están los pasos que sigo. El código fuente está alojado en GitHub: https://github.com/jiahaoliuliu/sherlockActionBarLab
Reemplace el estilo real para los dispositivos pre-v11.
Copie y pegue el código siguiente en el archivo styles.xml de la carpeta de valores predeterminados.
<resources>
<style name="MyCustomTheme" parent="Theme.Sherlock.Light">
<item name="homeAsUpIndicator">@drawable/ic_home_up</item>
</style>
</resources>
Tenga en cuenta que el padre podría cambiarse por cualquier tema de Sherlock.
Reemplace el estilo real para los dispositivos v11 +.
En la misma carpeta donde está el valor de la carpeta, cree una nueva carpeta llamada values-v11. Android buscará automáticamente el contenido de esta carpeta para dispositivos con API o superior.
Cree un nuevo archivo llamado styles.xml y pegue el siguiente código en el archivo:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyCustomTheme" parent="Theme.Sherlock.Light">
<item name="android:homeAsUpIndicator">@drawable/ic_home_up</item>
</style>
</resources>
Tenga en cuenta que el nombre del estilo debe ser el mismo que el archivo en la carpeta de valores predeterminados y, en lugar del elemento homeAsUpIndicator, se llama android: homeAsUpIndicator.
El problema del elemento se debe a que para los dispositivos con API 11 o superior, la barra de acciones de Sherlock usa la barra de acciones predeterminada que viene con Android, cuyo nombre de clave es android: homeAsUpIndicator. Pero para los dispositivos con API 10 o inferior, la barra de acciones de Sherlock usa su propia barra de acciones, que el indicador de inicio como arriba se llama simple "homeAsUpIndicator".
Use el nuevo tema en el manifiesto
Reemplace el tema de la aplicación / actividad en el archivo AndroidManifest:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyCustomTheme" >
Hice el siguiente código en onCreate()
y trabajé conmigo
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
La modificación del ícono de navegación difiere para ActionBar y la barra de herramientas.
Para ActionBar, anule el atributo homeAsUpIndicator
:
<style name="CustomThemeActionBar" parent="android:Theme.Holo">
<item name="homeAsUpIndicator">@drawable/ic_nav_back</item>
</style>
Para la barra de herramientas, anule el atributo navigationIcon
:
<style name="CustomThemeToolbar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="navigationIcon">@drawable/ic_nav_back</item>
</style>
Por lo tanto, puede cambiarlo de forma programática fácilmente mediante el uso de la función homeAsUpIndicator () que se agregó en la API de Android nivel 18 y superior.
ActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
Si usa la biblioteca de soporte
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
Si está utilizando la Barra de herramientas, no necesita esas soluciones. Solo tienes que cambiar el tema de la barra de herramientas
app:theme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
Si está usando un dark.actionBar, su botón Atrás va a ser blanco, si está usando el tema de la barra de acción, va a ser negro.
Tuve el mismo problema con la dirección del icono del botón Inicio de la barra de acciones, debido a la administración incorrecta de Icono en el icono del directorio de recursos de Gradle
Al igual que en el directorio de recursos de Gradle, se coloca el ícono en x-hdpi y en el inglés Gradle, el mismo nombre de ícono se coloca en una carpeta de densidad diferente como xx-hdpi, de modo que en APK habrá dos mismos nombres en diferentes directorios, por lo que su dispositivo seleccionará el ícono dependiente de la densidad puede ser RTL o LTR
Utilicé la imagen back.png en el archivo de proyecto menifest.xml. está bien trabajando en proyecto.
<activity
android:name=".YourActivity"
android:icon="@drawable/back"
android:label="@string/app_name" >
</activity>