PDA

Ver la Versión Completa : [ CONSULTA ] Background de botones Action Bar


androizado
07/11/14, 12:41:02
Buenas tengo un problema y es el siguiente. Tengo en el ActionBar dos botones los cuales son un de busqueda y otro que al pulsar te lleva a un carrito de la compra.

Este es el xml del menu:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".main" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="@string/action_search"/>
<item android:id="@+id/action_carrito"
android:title="@string/action_example"
android:icon="@drawable/ic_carrito"
app:showAsAction="always" />
</menu>

El caso es que quiero cambiar el background del botón del carrito y lo que estoy realizando es lo siguiente, en el styles.xml de mi app:

<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="actionBarStyle">@style/MyActionBar</item>

<item name="actionButtonStyle">@style/MyActionButtonStyle</item>
<item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@android:color/white</item>
<item name="android:textSize">18sp</item>
</style>

<style name="MyActionButtonStyle" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:background">@color/darker_green</item>
</style>

</resources>

Lo señalado es lo referente a lo que estoy haciendo para poner el botón del carrito en verde, el caso es que me lo hace perfecto, pero también le añade al botón de buscar ese background, creo que algo lógico porque le estoy diciendo que "actionButtonStyle", pero habría alguna forma de hacer que solo le de ese color darker_green a ese botón en particular.

Si podéis echarme una mano, gracias de antemano.

androizado
08/11/14, 22:30:04
Hola he intentado hacer lo siguiente... Para solucionar esté problema que me surge os dejo el código:

Primeramente decir que he eliminado del archivo styles.xml MyActionButtonStyle, que anteriormente mencionaba.

Archivo action_carrito_bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/darker_green"></solid>
</shape>
</item>
<item>
<bitmap android:src="@drawable/ic_carrito"/>
</item>
</layer-list>

Archivo menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".main" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="@string/action_search"/>
<item android:id="@+id/action_carrito"
android:title="@string/action_example"
android:icon="@drawable/action_carrito_bg"
app:showAsAction="always" />
</menu>

El problema es que si ahora hace lo que deseaba, el color verde lo aplica solo al botón de action_carrito, pero no logro quitar el padding de alrededor, soy un tanto novato, y he podido ver que este padding lo pone como por defecto, si me confundo rectificarme. También he intentado añadir el siguiente código en shape, para que coja el size total del ActionBar.

<size android:height="@android:attr/actionBarSize" android:width="@android:attr/actionBarSize"/>

Alguien sabe en que me estoy equivocando? Gracias de antemano.