El icono de la aplicación no se muestra en la barra de acciones

Seguí las instrucciones de construir un nuevo proyecto de Android y obtuve un ejecutable excepto un problema con la barra de acciones. El problema es que el icono de la aplicación no se muestra junto al título de la aplicación en la barra de acciones. Creé el proyecto con la configuración a continuación:

  • SDK mínimo requerido: API 8: Android 2.2 (Froyo)

  • SDK de destino: API 21: Android 4.X (vista previa en L)

  • Comstackr con: API 21: Android 4.X (vista previa en L)

  • Tema: Holo Light con barra de acción oscura (Eclipse establece el tema de aplicación correspondiente)

  • Android Support Library 21.0.1

  • Android SDK Build-tools 21.1.1

Como mi SDK mínimo es api 8, que no admite la barra de acciones, el proyecto incluye una appcompat_v7 library para permitir la función de la barra de acciones. Si configuro el sdk mínimo en la API 14 (Android 4.0) o superior, entonces el proyecto no incluye la appcompat_v7 library y el icono de la aplicación también se muestra con éxito. Pero necesito que mi aplicación sea compatible con un sistema operativo Android más antiguo, tan solo con una API 8. Entonces, ¿qué debo hacer para solucionar este problema? Realmente les aprecio mucha atención.

PD: realicé la tarea anterior en windows, mac, eclipse, android studio y obtuve el mismo resultado.

Está utilizando la versión 21+ de AppCompat y es normal.

La barra de acciones sigue las pautas de diseño de materiales y utiliza una barra de herramientas . Como puedes leer aquí :

El uso del icono de la aplicación más el título como diseño estándar no se recomienda en los dispositivos con API 21 o posteriores.

Si desea un ícono de aplicación (pero lo desaconsejo), puede usar el método setLogo() .

Algo como esto:

 ActionBar actionBar = getSupportActionBar(); actionBar.setLogo(R.drawable.my_logo); actionBar.setDisplayUseLogoEnabled(true); actionBar.setDisplayShowHomeEnabled(true); 

Este problema se produce cuando utiliza la biblioteca de soporte revisada 21.

Utilizar:

 ActionBar actionBar = getSupportActionBar(); actionBar.setLogo(R.drawable.ic_launcher); actionBar.setDisplayUseLogoEnabled(true); actionBar.setDisplayShowHomeEnabled(true); 

Me funcionó o puedes usar la barra de herramientas. Una barra de herramientas es una generalización de barras de acción para usar en diseños de aplicaciones.

En las interfaces de usuario de Android modernas, los desarrolladores deberían apoyarse más en un esquema de colores visualmente distinto para las barras de herramientas que en su icono de aplicación. El uso del icono de la aplicación más el título como diseño estándar no se recomienda en los dispositivos con API 21 o posteriores.

Referencia: https://developer.android.com/reference/android/support/v7/widget/Toolbar.html

Asegúrese de tener el ícono configurado en el archivo manifest.xml, en la etiqueta de la aplicación como:

  android:icon="@drawable/launcher_icon" 

Luego, en el método onCreate, inserte las siguientes líneas:

  ActionBar ab =getSupportActionBar(); ab.setDisplayShowHomeEnabled(true); ab.setIcon(R.drawable.launcher_icon); 

Este es un “problema” común. Antes de sacarse los pelos, asegúrese de estar usando:

 import android.support.v7.app.ActionBar; //or the v4, haven't tried with that though 

y no:

 import android.app.ActionBar; 

y entonces:

 ActionBar actionBar; actionBar = getSupportActionBar(); 

en lugar de:

actionBar = getActionBar();

Y finalmente:

 if (actionBar != null) { // enabling action bar app icon and behaving it as toggle button actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setIcon(R.drawable.your_icon); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayShowHomeEnabled(true); } 

El logotipo de atributo solo se utiliza en API nivel 11 y superior (el mínimo actual es 8), también estaba confundido acerca de esta pregunta, tal vez Google simplemente no desea que el icono se muestre en el diseño del material, cuando el mínimo SDK se establece en 14 o mayor y menor de 21 años, usa holo theme, tiene un ícono, pero el estilo appcompat es más parecido al diseño del material. Creo que tal vez Google simplemente se olvidó de modificar el tema holo.

IN Style.xml

   

En actividad, agrega esto y prueba

 ActionBar mActionBar = getSupportActionBar(); mActionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);