Android: ¿Cómo cambiar el icono de Action BAR "Home" para ser algo más que el icono de la aplicación?

StackOverflow https://stackoverflow.com/questions/6351479

Pregunta

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

Me gustaría proporcionar a la barra de Action una versión separada del ícono, solo la parte del "logotipo" y no las letras debajo, pero hasta ahora han estado vacías. Sinceramente, no puedo encontrar ninguna respuesta a esto, y ni siquiera puedo encontrar la pregunta en sí misma en ningún lado.

¿Fue útil?

Solución

La barra de acción usará el Android: logotipo Atributo de su manifiesto, si se proporciona uno. Eso le permite utilizar recursos dibujables separados para el icono (lanzador) y el logotipo (ActionBar, entre otras cosas).

Otros consejos

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>

Por favor prueba esta línea

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

Si está utilizando AppCompat, la única forma de establecer el icono de ActionBar en dispositivos que ejecutan Gingerbread (API 10) o a continuación estableciendo el atributo Android: Icon en cada actividad en su manifiesto o configurando el dibujo programada 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 lanzamiento. El único trabajo que conozco es tener una actividad de salpicaduras o ficticio que luego lance su actividad principal.

Inspirado por Theit, acabo de hacer que esto funcione manipulando el archivo manifiesto pero de una manera ligeramente diferente. Establezca el ícono en la configuración de la aplicación para que la mayoría de las actividades obtengan el ícono. En la actividad donde desea mostrar el logotipo, agregue el atributo Android: logotipo a la declaración de actividad. En el siguiente ejemplo, solo la logoactividad debe tener el logotipo, mientras que los otros se predeterminarán al icono.

<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!

Creación del logotipo

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

En AndroidManifest.xml Agregar línea: android:logo="@drawable/logo"

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

eso es todo.

Intente, si use "extiende AppCompatactivity" y presente Action Bar.

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

Es posible que quiera verificar esto, tengo todo lo que necesitas para los iconos de tu aplicación

http://developer.android.com/guide/practices/ui_guidelines/icon_design.html

actualizar

Creo que de forma predeterminada usa su icono de lanzador ... su mejor opción es crear una imagen separada ... diseñada para la barra de acción y usarlo. Para ese cheque: http://developer.android.com/guide/topics/ui/actionbar.html#accionitems

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top