2011-04-22 11 views
5
iv.setImageResource(R.drawable.icon); 

linia ta działa dobrze dla mnieandroid: Zmienna przekazywana do R.drawable.variableValue

mogę przekazać zmienną wartość zamiast ikony jak jeśli mam 10 obrazów w odkształcalne i chcę, aby zdecydować, na starcie którego obraz, aby pokazać mogę przekazać wartość zmiennej i przez to działa jak

String variableValue = imageName; 
    iv.setImageResource(R.drawable.variableValue); 

Odpowiedz

4

można użyć tablicę do definiowania kanału alfa:

int[] images = new int[2]; 
images[0] = R.drawables.image1; 
images[1] = R.drawables.image2; 

a następnie można użyć tej tablicy, aby ustawić obraz w czasie wykonywania:

lv.setImageResource(images[i]); 

Gdzie jest w tym przypadku albo 0 do punktu pierwszego obrazu lub 1 do punktu do drugiego obrazu tablicy .

+0

pracował jak urok ... awsome :) ... Dziękuję za co ułatwi życie raczej przynosząc więcej komplikacji do czegoś, co już jest skomplikowany (conajmniej dla mnie). –

+0

Według mnie działa tylko z R.drawable zamiast R.drawables –

0

Nie, to nie zadziała w ten sposób.

W pierwszej linii icon jest generowany static final członkiem static final class R.drawable więc próbuje złączyć go jakby to była String nie daje błąd kompilatora.

Ale można spróbować użyć

iv.setImageURI(uri); 

gdzie uri jest URI do obrazu, dzięki czemu można korzystać z wartości ciągu tutaj.
Ponadto, zgodnie z dokumentacją API, lepszym rozwiązaniem byłoby użycie setImageBitmap: powinieneś rozważyć to na podstawie swoich zasobów.

apidocs:

public void setImageURI (Uri uri) 

Od: poziom API 1

Ustala treść tej ImageView do określony URI.

Umożliwia to odczytywanie i odszyfrowywanie bitmapową w wątku interfejsu użytkownika, co może powodować czkawkę dotyczącą opóźnień w czasie . Jeśli jest to niepokojące, należy rozważyć użycie przy użyciu zestawu setImageDrawable (Drawable) lub setImageBitmap (Bitmap) i BitmapFactory.

Parametry
uri URI obrazu

16

Resources.getIdentifier() może rozwiązać problem.

String variableValue = imageName; 
iv.setImageResource(getResources().getIdentifier(variableValue, "drawable", getPackageName())); 
+0

Dziękuję, że pracujesz dla mnie. –

Powiązane problemy