2011-03-11 13 views
5

Estoy intentando crear un menú de íconos dinámicos para mi aplicación de Android. El ícono está hecho de 2 dibujables, una imagen de fondo de 9 parches con la superposición de la imagen del ícono.Android: Configuración de relleno en un fondo de imagen de superposición

Con referencia a overlay two images in android to set an imageview, tengo el siguiente código que tiene la superposición muy bien.

 Resources res = parent.getResources(); 
     Drawable icon_bg = res.getDrawable(R.drawable.menu_icon_bg); 
     Drawable icon = res.getDrawable(R.drawable.menu_icon); 

     // Not working 
     int int_icon_height = icon.getIntrinsicHeight(); 
     int int_icon_width = icon.getIntrinsicWidth(); 
     Rect rect_icon_bg_bound = new Rect(); 
     rect_icon_bg_bound.left = 0;//(int) Math.round(int_icon_width*-1.5); 
     rect_icon_bg_bound.right = (int) Math.round(int_icon_width*1.5); 
     rect_icon_bg_bound.top = 0;//(int)Math.round(int_icon_height*-1.5); 
     rect_icon_bg_bound.bottom = (int)Math.round(int_icon_height*1.5); 
     icon_bg.setBounds(rect_icon_bg_bound); 

     Drawable[] layers = new Drawable[2]; 
     layers[0] = icon_bg; 
     layers[1] = icon; 

     LayerDrawable layerDrawable = new LayerDrawable(layers); 
     ImageView iv_icon_combined = new ImageView(getApplicationContext()); 
     iv_icon_combined.setImageDrawable(layerDrawable); 

El problema que estoy enfrentando en este momento es agregar un relleno para que el icono tenga algo de espacio en el fondo.

Espero obtener algo de iluminación aquí, gracias de antemano.

+0

Hola, todavía estoy atascado en esta pregunta. ¿Hay algún otro lugar donde pueda investigar para ayudar en esto? – InSheNaiDe

Respuesta

5

Acabo de encontrarme con este mismo problema. Eche un vistazo al método setLayerInset en LayerDrawable. Toma el nivel de capa como un argumento y luego los modificadores para los límites izquierdo, superior, derecho e inferior del dibujable.

+0

Muchas gracias. ¡¡Funciona!! – InSheNaiDe

Cuestiones relacionadas