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,

  • Mapa de bits de StateListDrawable y mosaico
  • ¿Cómo agrupar una cuadrícula de 3x3 de botones de radio?
  • Android: Obtener todas las entradas seleccionadas de MultiSelectListPreference (SharedPreferences)
  • "TransformerException: se esperaba un paso de ubicación" en android xpath
  • Cómo agregar sombra alrededor de imagen circular
  • Cargar un TextView desde xml en un TextSwitcher
  • Simple-XML analiza el feed RSS con 2 que se declara dos veces
  • ¿Hacer una Snackbar sin vista?
  • Android XML dibujable degradado transparente
  • Android: mover los botones libremente en el editor de diseño gráfico de Eclipse
  • Android Flavors, ContentProviders, SyncAdapters y AccountManager
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.