Agregar imagen al elemento de menú

Tengo. Png imágenes en mi res/drawable-hdpi/delete.png Quiero añadirlo como icono a mi item menú.

Solía:

Delete.xml

 <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/deletebutton"> </bitmap> 

Menú activity_main.xml

 <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/create" android:showAsAction="always" android:title="@string/createTask"/> <item android:id="@+id/delete" android:showAsAction="always" android:icon="@drawable/delete" android:title="@string/deleteTask" /> </menu> 

Pero no funciona.

Quité el archivo xml y trató de cargar directamente la imagen aquí es el archivo de registro.

 04-02 17:46:50.887: E/AndroidRuntime(11957): FATAL EXCEPTION: main 04-02 17:46:50.887: E/AndroidRuntime(11957): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.devicecontrolpanel/com.example.devicecontrolpanel.Main}: android.content.res.Resources$NotFoundException: Resource ID #0x7f020008 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2205) 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2240) 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.app.ActivityThread.access$600(ActivityThread.java:139) 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262) 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.os.Handler.dispatchMessage(Handler.java:99) 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.os.Looper.loop(Looper.java:156) 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.app.ActivityThread.main(ActivityThread.java:4987) 04-02 17:46:50.887: E/AndroidRuntime(11957): at java.lang.reflect.Method.invokeNative(Native Method) 04-02 17:46:50.887: E/AndroidRuntime(11957): at java.lang.reflect.Method.invoke(Method.java:511) 04-02 17:46:50.887: E/AndroidRuntime(11957): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 04-02 17:46:50.887: E/AndroidRuntime(11957): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 04-02 17:46:50.887: E/AndroidRuntime(11957): at dalvik.system.NativeStart.main(Native Method) 04-02 17:46:50.887: E/AndroidRuntime(11957): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f020008 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.content.res.Resources.getValue(Resources.java:1105) 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.content.res.Resources.getDrawable(Resources.java:674) 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.widget.CompoundButton.setButtonDrawable(CompoundButton.java:189) 04-02 17:46:50.887: E/AndroidRuntime(11957): at com.example.devicecontrolpanel.Main.listAllAlarms(Main.java:69) 04-02 17:46:50.887: E/AndroidRuntime(11957): at com.example.devicecontrolpanel.Main.onCreate(Main.java:25) 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.app.Activity.performCreate(Activity.java:4538) 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071) 04-02 17:46:50.887: E/AndroidRuntime(11957): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161) 04-02 17:46:50.887: E/AndroidRuntime(11957): ... 11 more 

4 Solutions collect form web for “Agregar imagen al elemento de menú”

Al principio realmente no necesita delete.xml en su caso.

 <item android:id="@+id/delete" android:showAsAction="always" android:icon="@drawable/deletebutton" android:title="@string /> 

Y también creo que tienes problema aquí:

 android:title="@string 

Aquí, le falta el apóstrofe correcto y el valor. Si no desea mostrar el título en MenuItem, simplemente elimine esta propiedad.

Actualizar:

 java.lang.StackOverflowError 

Tienes SO en loadDrawable () y significa que tu Drawable es demasiado grande para cargar (tu pila se completa completamente). Trate de usar otro (más pequeño) o recortar uno real. Y también asegúrese de tener su imagen en todas las carpetas dibujables.

Es atrasado pero daré una respuesta apenas para la referencia futura por otros, usted puede hacer más estilo programatically como así:

 public class MyClass { public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { // Do your other stuff here MenuItem item = menu.getItem(0); if (item.getItemId() == R.id.action_example) { ImageView imageView = new ImageView(getActivity()); imageView.setMaxHeight(18); imageView.setMaxWidth(18); imageView.setImageResource(R.drawable.barchart32); item.setActionView(imageView); } } } 

Hola eche un vistazo a esto.

 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/open" android:icon="@drawable/openicon" android:title="Open the file" /> <item android:id="@+id/save" android:icon="@drawable/saveicon" android:title="Save the file" /> </menu> 

No es necesario establecer archivos de mapa de bits. Sólo use las líneas anteriores solo. Espero que esto te ayudará.

Siga este tutorial http://buildmobile.com/menus-in-android/

android:background="@drawable/ic_play" /> es lo que estoy haciendo,

  • App: srcCompat - Vector drawable se muestra en la vista previa del diseño, pero no se muestra en la aplicación
  • Cómo obtener el valor entero de res / integers.xml?
  • Android XML redondeado esquinas recortadas
  • Android Support BottomSheetBehavior no puede ser dinámico?
  • Altura y peso de la disposición lineal
  • XML tiene cuerpo vacío?
  • ¿Qué es el carácter 0x1f?
  • ¿Cómo obtengo un botón para abrir otra actividad en Android Studio?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.