2012-06-26 960 views
7

Tengo una imagen que quiero unir horizontalmente y lo necesito hecho programáticamente. Lo intenté de dos maneras, y ambas no funcionan.Android programmatically tile image como fondo

button_inner_shadow es la navigation_background imagen es el XML que supone para baldosas de la imagen de arriba

1: imagen de mosaico directamente

BitmapDrawable navigationBackground = new BitmapDrawable(BitmapFactory.decodeResource(
       getResources(), R.drawable.button_inner_shadow)); 
navigationBackground.setTileModeX(Shader.TileMode.REPEAT); 
navigationTextViews[id].setBackgroundDrawable(navigationBackground); 

2: utilizar xml imagen de la baldosa a

navigationBackground = new BitmapDrawable(BitmapFactory.decodeResource(
       getResources(), R.drawable.navigation_background)); 
navigationTextViews[id].setBackgroundDrawable(navigationBackground); 

navigation_background

<?xml version="1.0" encoding="utf-8"?> 
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
    android:dither="true" 
    android:src="@drawable/button_inner_shadow" 
    android:tileMode="repeat" /> 

¿Qué estoy haciendo mal?

También uso setBackgroundResource para configurar el color de fondo en otra parte del programa y pensé que era un problema. He agregado navigationTextViews[id].setBackgroundResource(0);, que debería eliminar el recurso de fondo, y eso no funciona con las soluciones anteriores que utilicé.

EDIT: navigationTextViews [] es una matriz de TextViews

+0

¿Qué error obtuviste, publicar logcat? –

+0

No obtengo un error. – heero

Respuesta

3

Bueno, por alguna razón, la primera opción trabajó con una imagen diferente, así que supongo que el problema es que mi primera imagen (que es un gradiente con cierta transparencia) era demasiado transparente.