2016-04-12 36 views
0

dizgesine göre Benim çekilebilir cihazımda 100'ün üzerinde resim var. Temelde bir Kategori. Sütun dahil kategorisinde sunucudan veri arıyorum. Resimlerim cat_image1, cat_image2, cat_image3 vb. Olarak adlandırıldı. Sunucu, ilgili srting'i sırasıyla Image1, Image2, Image3 vb. Olarak gönderiyordu.Android Resmi Ayarla Dize

// catString = cat -> R.drawable.ic_cat 
int imageId = getResources().getIdentifier("ic_" + catString, "drawable", getPackageName()); 
someView.setImage(imageId)); 

Ayrıca HashMap kullanabilirsiniz: Eğer bir önek kullanmak gerekiyorsa

// catString = cat -> R.drawable.cat 
int imageId = getResources().getIdentifier(catString, "drawable", getPackageName()); 
someView.setImage(imageId)); 

: Ben

String catString = someJSONObject.getString(Config.POI_CATEGORY); 

if (catString == "image1") { 
    someView.setImage(getResources().getDrawable(R.mipmap.image1)); 
} 

else if (catString == "image2") { 
     someView.setImage(getResources().getDrawable(R.mipmap.image2)); 
    } 

else if (catString == "image3") { 
     someView.setImage(getResources().getDrawable(R.mipmap.image3)); 
    } 

... 
... 
... 
+0

Bu dizeyi karşılaştıramazsınız, bununla değiştirin if (catString.equals ("image1")) {// eşyalarınızı yapın} –

+0

Olası kopyası [Durumumda dinamik ada sahip kaynağa nasıl erişilir?] (http://stackoverflow.com/questions/6583843/how- to-access-resource-with-my-case-in-my-case) –

+0

Ben bu 100 görüntüleri sunucunuzda saklamak ve bu görüntülerin URL'leri döndürmek ve sonra o görüntüyü –

cevap

1

böyle bir şey deneyin yapıyorum onun değil yol düşünüyorum :

HashMap<String, Integer> hm = new HashMap<>(); 
// Put elements to the map 
hm.put("cat", R.drawable.ic_some_cat_image); 
hm.put("other cat", R.drawable.ic_other_cat); 

for (int i = 0; i < typeofplace.length; i++) { 
    // You might want to check if it exists in the hasmap 
    someView.setImage(hm.get(catString)); 
} 
+0

göre başka bir şey unuttum düşünüyorum düşünüyorum. Ben çekilebilir "ic_image1" gibi bir önek vardı. O zaman nasıl arayabilirim? –

+1

Bkz. Düzenle, ayrıca örneğin 'HashMap' kullanabilirsiniz. Ya da "getResources(). GetIdentifier (" ic_ "+ catString," drawable ", getPackageName())' adlarını çekebilirsiniz. – Exaqt

İlgili konular