Establecer la altura del icono de la barra de acciones para que coincida con la altura de la barra de acciones

Ver el problema aquí, la casilla de verificación gris deja espacio desde la parte superior e inferior de la barra de acción: Pequeño icono de barra de acciones

Styles.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="CustomActionBarTheme" parent="Theme.Base.AppCompat.Light"> <item name="android:windowContentOverlay">@null</item> <item name="android:actionButtonStyle">@style/ActionButtonStyle</item> </style> <!--<style name="ActionButtonStyle" parent="@android:style/Widget.Holo.Light.ActionButton">--> <style name="ActionButtonStyle" > <item name="android:height">@dimen/abc_action_bar_default_height</item> <item name="android:layout_height">@dimen/abc_action_bar_default_height</item> </style> 

Fijo el artículo así:

 getMenuInflater().inflate(R.menu.submit_action, menu); 

Submit_action se parece a:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_submit" android:icon="@drawable/check" app:showAsAction="always" /> </menu> 

Y finalmente, se adjunta es el @ drawable / cheque que se utiliza.

Introduzca aquí la descripción de la imagen

Cualquier idea de cómo puedo obtener el cheque para llenar la barra de acción?

La razón por la que su icono no llena la ActionBar se debe a cómo el ActionMenuItemView mide el icono.

El ActionMenuItemView invoca un tamaño máximo de 32dp cuando establece los límites para su icono

Por lo tanto, hace la diferencia cuán grande es su imagen, el sistema siempre se redimensionará.

Cualquier idea de cómo puedo obtener el cheque para llenar la barra de acción?

Debe utilizar un diseño de acción para su MenuItem , un icono de marca de verificación sin fondo y cambiar el color de fondo del padre de la disposición de acción como mejor le parezca. He aquí un ejemplo:

diseño

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" style="?android:attr/actionButtonStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#e8e8e8" android:clickable="true" android:contentDescription="@string/cd" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@null" android:scaleType="centerInside" android:src="@drawable/ic_action_tick" /> </RelativeLayout> 

Opción del menú

 <item android:id="@+id/action_submit" android:actionLayout="@layout/your_action_layout" android:showAsAction="always"/> 

Accesibilidad

Es importante asegurarse de que su MenuItem sea ​​accesible. Normalmente, cuando presiona un elemento en la ActionBar un Toast corto mostrará la descripción de contenido para usted, pero cuando usted está usando un MenuItem personalizado depende de usted para implementar este patrón. Una manera fácil de hacerlo es usando CheatSheet de Roman Nurik . Si no está seguro de cómo usarlo, debe consultar mi respuesta aquí que entra en mucho más detalle en la creación de diseños personalizados MenuItem .

Alternativamente

Si desea utilizar ese color de fondo para cada MenuItem que tenga, puede crear un estilo personalizado y aplicarlo mediante el atributo android:actionButtonStyle . He aquí un ejemplo de eso:

Tu estilo

 <style name="Your.ActionButton" parent="@android:style/Widget.Holo.Light.ActionButton"> <item name="android:background">#e8e8e8</item> </style> 

Tu tema

 <style name="Your.Theme" parent="@android:style/Theme.Holo.Light"> <item name="android:actionButtonStyle">@style/Your.ActionButton</item> </style> 

Resultados

Ejemplo

Esto es lo que hago con los iconos de Android para obtener el tamaño correcto. Tiene un proyecto existente con las carpetas res / drawable. Tienes que poner el icono correcto en la carpeta correcta.

Inicie un nuevo asistente de proyecto y cuando llegue al icono del lanzador, coloque el ícono que desee utilizar en su proyecto existente. Terminar el asistente. El asistente hará los diferentes tamaños de los iconos para usted. A continuación, copiar manualmente los iconos de res / drawable-xdpi res / drawable-ldpi etc a la carpeta correspondiente en mi proyecto existente. Elimine el nuevo proyecto ya no es necesario.

  • Barra de acción de contracción pero sólo muestra cuando RecyclerView muestra completamente el primer elemento
  • Android personalizado Overflow-menu (Sin barra de acción y sin menubutton)
  • ClassCastException: android.support.v7.widget.ShareActionProvider
  • Cómo cambiar el relleno o el margen del icono o logotipo de la barra de acción en el tema XML?
  • El botón Volver a la barra de acción no aparece en Android
  • Barra de acción dividida en Android 5.0 (Lollipop)
  • ActionBarDrawerToggle v7 o v4?
  • Android ActionBar no se dividirá en el dispositivo
  • Actividad del asistente de actividad de pantalla completa. ¿Cómo dejo de mostrar la barra de acción cuando interactúo con el dispositivo?
  • RequestFeature con barra de acción
  • ActionBar no se desplaza a la pestaña seleccionada si ésta está fuera de los límites visibles de actionBar en la pantalla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.