2010-11-23 26 views
5

Bu veritabanında 100'den fazla resim (ülke bayrakları) veritabanına sahibim.Görüntüyü dinamik olarak ImageView uygulamasında yükleyebilirsiniz

Şimdi bulunduğunuz ülkenin bayrağını bir ImageView'da görüntülemek istiyorum.

Ben String country_variable = address.getCountryCode();

ülkeyi olsun Ve derleyici içinde country_variable adında bir görüntü bulamıyor çünkü tüm R.drawable.country_variable wont't işi bildiği gibi ben flag.setImageDrawable(getResources().getDrawable(R.drawable.country_variable));

ile görüntüyü ayarlamak çekilebilir klasör.

Bunu yapmanın en iyi yolu nedir?

+0

Neden her biri ülke koduyla birlikte çizilemez? ve bir hashmap kullanın. – techiServices

+0

Yaptım. Bayraklar "fr.png", "de.png", "uk.png", vb. Olarak adlandırılır. – Galip

+0

kendimi düzgün bir şekilde özür dilemediler. hashmap int, R.drawable'dır. techiServices

cevap

12

Sen GetResources kullanmak gerekir() getIdentifier() kaynak adıyla id almak.. Şunlar gibi:

flag.setImageDrawable(getResources().getDrawable(getResources().getIdentifier("drawable/" + country_variable, "drawable", getPackageName())); 
+1

Tnx! İşe yarıyor! .toLowerCase() eklemek zorunda kaldı; gerçi. getCountryCode(), iki büyük harf döndürür ve Android, çekilebilir haritada büyük harf dosyalarına izin vermez. – Galip

6

bu deneyin:

flag.setImageDrawable(getResources().getDrawable(getResources().getIdentifier(country_variable, "drawable", getPackageName())); 
+1

Tnx! İşe yarıyor! .toLowerCase() eklemek zorunda kaldı; gerçi. getCountryCode(), iki büyük harf döndürür ve Android, çekilebilir haritada büyük harf dosyalarına izin vermez. – Galip

+0

Sizin için çalıştıklarına sevindim :) – xil3

İlgili konular