2013-12-18 19 views
6

Voglio mettere un'immagine come sfondo di un layout .Android: imposta lo sfondo del layout utilizzando il percorso dell'immagine

Prima Sto creando un disegnabile: Drawable d = Drawable.createFromPath("pathToImageFile");

In livello di API 8layout.setBackground(d) è non supportato E layout.setBackgroundDrawable(d)è deprecato quindi ho bisogno di usare

layout.setBackgroundResource(resourceID)

come può Ottengo resourceID di un drawable generato dinamicamente. Sto usando questo metodo:

Drawable d = Drawable.createFromPath("pathToImageFile");

creare un drawable.

risposta

2

Hi utilizzare il seguente metodo

public void setBackgroundDrawable (Drawable background) 

chiamando

imageView.setBackgroundDrawable(drawable); 

Aggiunto a livello di API 1

EDIT: provare questo metodo

@SuppressWarnings("deprecation") 
    private void setRes(ImageView iv,Drawable drawable){ 
     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) 
      iv.setBackground(drawable); 
     else 
      iv.setBackgroundDrawable(drawable); 
    } 
+0

Questo metodo è deprecato posso usarlo ?? In eclissi viene visualizzato con un avvertimento in codice. – ZZeyaNN

+0

questo metodo è privato in api livello 16 fino al livello API 15 funzionerà grt –

+0

Ma per le versioni superiori la mia applicazione non funzionerà. – ZZeyaNN

0

Per API 1-15 uso

view.setBackgroundDrawable(drawable); 

Per API 16 & sopra uso

viw.setBackground(drawable); 
0

Come spiegato nel POST da @hasanghaforian,

È possibile ottenere l'ID di risorsa utilizzando il "getIdentifier "con il seguente codice:

int resID = getResources().getIdentifier("org.anddev.android.testproject:drawable/bug", null, null); 

O

int resID = getResources().getIdentifier("bug", "drawable", "org.anddev.android.testproject");  

dove,

bug.png è il file in "/res/drawable/".

Quindi è possibile utilizzare layout.setBackgroundResource(resID).

+0

dato che stiamo creando dinamicamente ** drawable ** non conosciamo il suo nome, che in questo caso è "bug". – ZZeyaNN

Problemi correlati