android android-3.0-honeycomb android-actionbar

Android: ¿Cómo cambiar el icono "Inicio" de ActionBar para que sea algo más que el ícono de la aplicación?



android-3.0-honeycomb android-actionbar (8)

El icono principal de mi aplicación consta de dos partes en una imagen: un logotipo y algunas letras debajo. Esto funciona bien para el ícono del iniciador de la aplicación, pero cuando el ícono aparece en el borde izquierdo de la barra de acciones, las letras se cortan y no se ve bien.

Me gustaría proporcionar al ActionBar una versión separada del ícono, con solo la parte del "logo" y no las letras debajo, pero hasta ahora ha estado vacío. Honestamente, no puedo encontrar ninguna respuesta a esto, y ni siquiera puedo encontrar la pregunta en sí misma en ninguna parte.


ActionBar utilizará el atributo android:logo de su manifiesto, si se proporciona uno. Eso le permite usar recursos dibujables por separado para el icono (Iniciador) y el logotipo (Barra de acción, entre otras cosas).


En AndroidManifest.xml:

<application android:icon="@drawable/launcher" android:label="@string/app_name" android:name="com..." android:theme="@style/Theme">...</Application>

En styles.xml: (Ver android:icon )

<style name="Theme" parent="@android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@style/ActionBar</item> </style> <style name="ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:icon">@drawable/icon</item> </style>


Inspirado por TheIT, acabo de hacer que esto funcione al manipular el archivo de manifiesto, pero de una manera ligeramente diferente. Establezca el icono en la configuración de la aplicación para que la mayoría de las actividades obtengan el ícono. En la actividad en la que desea mostrar el logotipo, agregue el atributo logo de android: a la declaración de actividad. En el siguiente ejemplo, solo LogoActivity debería tener el logotipo, mientras que los demás se convertirán en ícono.

<application android:name="com.your.app" android:icon="@drawable/your_icon" android:label="@string/app_name"> <activity android:name="com.your.app.LogoActivity" android:logo="@drawable/your_logo" android:label="Logo Activity" > <activity android:name="com.your.app.IconActivity1" android:label="Icon Activity 1" > <activity android:name="com.your.app.IconActivity2" android:label="Icon Activity 2" > </application>

Espero que esto ayude a alguien más a salir!


Por favor prueba esta línea

getSupportActionBar().setHomeAsUpIndicator(R.drawable.back_arrow);


Por favor, inténtelo, si el uso "extiende AppCompatActivity" y presente la barra de acciones.

ActionBar eksinbar=getSupportActionBar(); if (eksinbar != null) { eksinbar.setDisplayHomeAsUpEnabled(true); eksinbar.setHomeAsUpIndicator(R.mipmap.imagexxx); }


Si está utilizando AppCompat, la única forma de establecer el icono de ActionBar en los dispositivos que ejecutan Gingerbread (API 10) o inferior es configurando el atributo android: icon en cada Activity en su manifiesto o configurando el dibujable programáticamente.

<manifest> <application> ... <activity android:name="com.your.ActivityName" ... android:icon="@drawable/ab_logo"/> ... </application> </manifest>

Actualización: Tenga en cuenta, sin embargo, que el icono de la aplicación se anulará si establece el atributo android: icon en la Actividad de inicio. El único trabajo que conozco es tener una Splash o Dummy Activity que luego inicia tu actividad principal.



creando logo

en carpetas " drawable-... " crear en todos ellos logo.png . La ubicación de las carpetas: [YOUR APP]/app/src/main/res

En AndroidManifest.xml, agregue la línea: android:logo="@drawable/logo"

<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:logo="@drawable/logo" ...

Eso es.