2011-04-05 36 views
8

Necesito configurar el ícono de menú programáticamente (No a través de un archivo de diseño), y también necesito cargar el archivo de ícono del archivo: /// android_asset/(No se carga como Drawable compilado). Descubrí que el tamaño del icono que se muestra es relativamente más pequeño. Parece que Android lo cambia de tamaño o algo, y no quiero lograr el mismo efecto sin el código.android menu icon size

Como puede ver en la captura de pantalla adjunta, el menú "globe-36", "globe-48" y "globe-72" se llena con un código similar, y sus imágenes son 36x36, 48x48 y 72x72 : (Esta es la manera en que yo cargo mi icono en mi aplicación, tengo que)

  MenuItem mi = menu.add(Menu.NONE, i++, i++, icon); 
      Drawable d = Drawable.createFromStream(getAssets().open(icon + ".png"), icon); 
      mi.setIcon(d); 

y, el menú "globo-Aset" y "código de barras-activo" se poblado como:

MenuItem mi = menu.add(Menu.NONE, i++, i++, "globe-asset"); 
    mi.setIcon(R.drawable.globe); 

enter image description here

+0

¿Eso depende de la resolución de la pantalla? – Aleadam

+0

¿Cuál es la resolución de R.drawable.globe? ¿Tu pantalla es xhdpi? – 18446744073709551615

+0

para establecer el icono Pramaticallly [Load-actividad-y-o-aplicación-logo-programación-from-manifiesto] [1] [1]: http://stackoverflow.com/questions/6105504/ load-activity-and-or-application-logo-programmatically-from-manifest – Jabeer

Respuesta

10

Los tamaños de los iconos del menú son:

  • LDPI: 36x36
  • mdpi: 48x48
  • IPAP: 72x72
  • xhdpi: 96x96
  • xxhdpi: 144x144

como su El elemento del mundo es aproximadamente el doble que el globe-48 Supongo que su pantalla ot es de un dispositivo xhdpi que espera que los iconos de menú sean 96x96.

+0

Para obtener información más reciente, consulte aquí https://stackoverflow.com/questions/13639263/whats-the-correct-size-icon-for-drawable- xxhdpi – Justin

+0

para xxxhdpi: 192x192 –