2014-09-23 48 views
-1

一個小背景下,我使用Eclipse來編寫使用Java的Android遊戲/應用程序。一個函數返回一個變量「標誌」,它告訴一個渲染函數在屏幕頂部繪製一個窗口。我的代碼如下所示:如何以程序方式加載資源名稱?

if(flag == 3000){ 
window.setBitmap(BitmapFactory.decodeResource(res, R.drawable.tutorialdiagram_3000));} 

else if(flag == 3001){ 
window.setBitmap(BitmapFactory.decodeResource(res,R.drawable.tutorialdiagram_3001));} 

else if(flag == 3002){ 
window.setBitmap(BitmapFactory.decodeResource(res,R.drawable.tutorialdiagram_3002));} 

else if(flag == 3003){ 
window.setBitmap(BitmapFactory.decodeResource(res,R.drawable.tutorialdiagram_3003));} 

else if(flag == 3004){ 
window.setBitmap(BitmapFactory.decodeResource(res,R.drawable.tutorialdiagram_3004));} 

如果我可以簡單地用一行完成所有操作,那將會很好。這將是類似的(從Flash動作)

if(flag >= 3000){ 
    window.setBitmap(BitmapFactory.decodeResource(res, escape("R.drawable.tutorialdiagram_" + flag))); 
} 

我敢肯定,有一個超級簡單的方法來做到這一點。我應該在第一天就知道了,等等。誰能成爲第一個上學的人?

回答

1

您可以使用這樣的事情(更換「my.package」與您的包名):

int id = res.getIdentifier("tutorialdiagram_" + flag, "drawable", "my.package"); 
window.setBitmap(BitmapFactory.decodeResource(res,id)); 
+0

噢,我的上帝,它的工作的第一次嘗試!謝謝!順便說一下,我必須在引號中包含名稱。我對此一無所知。 – 2014-09-23 18:09:37

+0

現在如果其他程序員看到我的代碼並看到那部分,我不必非常尷尬。大聲笑 – 2014-09-23 18:11:31

+0

是否有類似的功能的字符串?例如,要使用標誌變量來縮短它? res.getString(R.string.flag_1); – 2014-09-23 22:48:21

相關問題