2012-06-26 1 views
7

Ho un'immagine che voglio affiancare orizzontalmente e ho bisogno di farlo a livello di programmazione. Ho provato due modi, ed entrambi non funzionano.Android affiancato a livello di codice dell'immagine come sfondo

button_inner_shadow rappresenta l'navigation_background immagine rappresenta l'XML che supponiamo per affiancare l'immagine sopra

1: piastrelle di immagine direttamente

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

2: utilizzare XML immagine Mattonelle di

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" /> 

Cosa sto sbagliando?

Io uso anche setBackgroundResource per impostare il cambiamento del colore di sfondo in un'altra parte del programma e ho pensato che fosse un problema. Ho aggiunto navigationTextViews[id].setBackgroundResource(0);, che dovrebbe rimuovere la risorsa di sfondo e che non funziona con le soluzioni di cui sopra che ho usato.

EDIT: navigationTextViews [] è un array di TextViews

+0

quale errore hai ricevuto, post logcat? –

+0

Non ho ricevuto un errore. – heero

risposta

3

Beh, per qualche ragione, la prima opzione ha lavorato con un'immagine diversa, in modo da sto indovinando il problema è che la mia prima immagine (che è un gradiente con una certa trasparenza) era troppo trasparente.