2012-04-28 13 views
31

Estoy implementando ActionBarsherlock y quiero cambiar el fondo de la barra de acciones.ActionBarSherlock - fondo personalizado de barra de acciones con divisor

Anulo las propiedades pero el divisor azul desaparece. ¿Cómo puedo usar fondo personalizado con el divisor azul?

<style name="Theme.MyTheme" parent="Theme.Sherlock.ForceOverflow"> 
    <item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item> 
    <item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item> 
</style> 

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar"> 
    <item name="android:background">#ff3e3f3d</item> 
    <item name="background">#ff3e3f3d</item> 
</style> 

Respuesta

7

El divisor azul es el fondo por defecto. Es un drawable de 9 parches que asegurará que la línea siempre aparezca en la parte inferior de la barra de acción, independientemente de su altura.

Para su situación, copiaría el fondo predeterminado .png s de Android y luego los modificaría para que la sección expansible del parche 9 sea su color de fondo de destino. Esto llenará la barra de acción con el color deseado mientras mantiene el borde azul en la parte inferior.

+0

Gracias, voy a copiar el fondo predeterminado y modificarlos. – ikarius

76

Para cualquier persona que (como yo) no disfruta de jugar con imágenes 9-patch, puede obtener el divisor en la parte inferior de la barra de acción utilizando un dibujable xml:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Bottom Line --> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/action_bar_line_color" /> 
     </shape> 
    </item> 

    <!-- Color of your action bar --> 
    <item android:bottom="2dip"> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/action_bar_color" /> 
     </shape> 
    </item> 
</layer-list> 

Guardar esto como dibujable/action_bar_background.xml, luego aplicarlo en su tema:

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar"> 
    <item name="android:background">@drawable/action_bar_background</item> 
    <item name="background">@drawable/action_bar_background</item> 
</style> 
+0

¡Esto era exactamente lo que estaba buscando! – Karen

+0

He estado buscando una semana para algo como esto, ¡esto es realmente bueno! –

+0

cómo aplicar en nuestro tema, actualice el código –

17

http://jgilfelt.github.io/android-actionbarstylegenerator/

Este proyecto se puede utilizar para generar el estilo Barra de acciones que necesita.

+1

Muchas gracias por esto es EXACTAMENTE lo que he estado buscando, ¡hace que sea muchísimo más fácil! – AndroidNoob

+0

Muchas gracias por compartir. Esto es exactamente lo que necesitaba! – Vivendi

+0

¿Hay algún tutorial sobre cómo usarlo? No tengo idea de dónde copiar estas imágenes y configurarlas. –

3

Solo una actualización de la respuesta proporcionada por DanielGrech. También es posible usar su propio gráfico personalizado en la parte inferior de la barra de acciones. De esta manera:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Bottom Line with custom graphic instead of a solid color--> 
    <item android:drawable="@drawable/bar"> 
      <shape android:shape="rectangle"/> 
    </item> 

    <!-- Color of your action bar --> 
    <item android:bottom="2dip"> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/action_bar_color" /> 
     </shape> 
    </item> 
</layer-list> 
Cuestiones relacionadas