Cómo agregar una imagen con texto en las opciones del menú en Android?

Estoy tratando de implementar una opción de menú personalizado con ambos, el texto y la imagen, que se parece a esta imagen introduzca la descripción de la imagen aquí

Desafortunadamente no sé cómo implementar esto.

Mi menu.xml ve así:

 <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="com.example.admin.ddcart.LIST"> <item android:id="@+id/action_settings1" android:title="@string/action_settings1" android:orderInCategory="100" app:showAsAction="never" /> <item android:id="@+id/action_settings2" android:title="@string/action_settings2" android:orderInCategory="100" app:showAsAction="never" /> <item android:id="@+id/action_settings3" android:title="@string/action_settings3" android:orderInCategory="100" app:showAsAction="never" /> </menu> 

Si su imagen está en mipmap dir, utilice

 android:icon=@mipmap/your_image" 

Si su imagen está en dir drawable continuación, utilice

 android:icon=@drawable/your_image" 

para los iconos prefieren añadir cuatro dibujados cada uno en

  • drawable-hdpi tamaño de la imagen 36 * 36
  • drawable-mdpi tamaño de la imagen 24 * 24
  • drawable-xhdpi tamaño de la imagen 48 * 48
  • drawable-xxhdpi tamaño de la imagen 72 * 72
  • drawable-xxxdpi tamaño de la imagen 96 * 96

También puede utilizar el vector

crear multa llamada delete.xml en dir dibujable

  <?xml version="1.0" encoding="UTF-8" standalone="no"?> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:viewportHeight="24.0" android:viewportWidth="24.0" android:width="24dp"> <path android:fillColor="#FFFFFF" android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/> </vector> 

y en la etiqueta del artículo use android:icon=@drawable/your_image"

Código completo

 <item android:id="@+id/action_settings2" android:title="@string/action_settings2" android:icon=@drawable/your_image"/> 

Para la generación de png y vector utilizar este complemento

Ajustar fácilmente el color, tamaño etc Crear png o vector

=> generar png de todos los tamaños en un solo clic

introduzca la descripción de la imagen aquí

Añadir android:icon=@drawable/your_image" en el atributo a la etiqueta del elemento

  <item android:id="@+id/action_settings2" android:title="@string/action_settings2" android:icon=@drawable/your_image"/> 

y usted necesita utilizar el hilandero referir estos acoplamientos http://www.androidhive.info/2013/11/android-working-with-action-bar/

https://developer.android.com/guide/topics/ui/controls/spinner.html

De esta manera puede configurar el icono en el menú

http://keepsafe.github.io/2014/11/19/building-a-custom-overflow-menu.html

 public void onClick(View v) { PopupMenu popupMenu = new PopupMenu(mContext, v); popupMenu.inflate(R.menu.album_overflow_menu); // Force icons to show Object menuHelper; Class[] argTypes; try { Field fMenuHelper = PopupMenu.class.getDeclaredField("mPopup"); fMenuHelper.setAccessible(true); menuHelper = fMenuHelper.get(popupMenu); argTypes = new Class[] { boolean.class }; menuHelper.getClass().getDeclaredMethod("setForceShowIcon", argTypes).invoke(menuHelper, true); } catch (Exception e) { // Possible exceptions are NoSuchMethodError and NoSuchFieldError // // In either case, an exception indicates something is wrong with the reflection code, or the // structure of the PopupMenu class or its dependencies has changed. // // These exceptions should never happen since we're shipping the AppCompat library in our own apk, // but in the case that they do, we simply can't force icons to display, so log the error and // show the menu normally. Log.w(TAG, "error forcing menu icons to show", e); popupMenu.show(); return; } popupMenu.show(); } 

Salida introduzca la descripción de la imagen aquí

Simplemente añada las imágenes como variable de icon en los elementos del menú.

  <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:id="@+id/menu_top" android:checkableBehavior="single" > <item android:checked="true" android:id="@+id/drawer_gmail" android:icon="@drawable/gmail" android:title="Gmail"/> <item android:id="@+id/bluetooth" android:icon="@drawable/bluetooth" android:title="Bluetooth" > </item> ... </group> </menu> 

Usted puede simplemente establecer un listview en el "menú", a continuación, por el código java crear un adaptador especial para inflar el "texto y la imagen juntos de diseño". Crear un diseño que contiene una vista de la imagen y textview, utilice su adaptador especial para inflar y para transferir el resultado a listview para que tenga un menú de la forma que desee.

Si tiene un error al hacer estos comentarios a continuación ..

  • Evento de desinstalación de aplicaciones para Android para análisis
  • Cómo quitar todas las devoluciones de llamada de un controlador?
  • Error en la versión 6.0 de Android 6.0: EACCES (Permiso denegado)
  • Latch (usado para esperar la respuesta asíncrona) congela el WebView (y la interfaz de usuario)
  • Aplicación de Android para enviar correo electrónico con datos adjuntos mediante la API de Java Mail
  • ¿Cómo truncar el flotador al formato .2f mientras lo codifica a JSON?
  • java.lang.NumberFormatException: Invalid int: "null"
  • ¿Puedo crear Bitmaps con el Android NDK en C ++ y pasarlos a Java muy rápido?
  • Android Google Maps v2 problema de rendimiento polígono?
  • Extraer el código del país del número de móvil
  • Cómo persistir el permiso en android API 19 (KitKat)?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.