2011-03-07 55 views
0

我有一個原始的xml資源表示一個級別文件。我想在這個文件中引用一個drawable,但我沒有一個好主意該怎麼做 - 因爲我不知道一個可繪製的id。什麼是這樣做的好方法?自定義xml引用可繪製資源

回答

5

假設你有一個具有你知道文件名的可繪製資源,你可以使用的文件名,並獲得這樣的ID:

String mDrawableName = "stringFromXML"; 
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName()); 

(通過How do I get the resource id of an image if I know its name?

(我看我有一個完全不同的理解你的問題,然後另一個答案:要清楚:我假設你有你自己創建的XML,代表遊戲中的一個層次。所以XML是你的個人事物,而不是一個android layout-xml ,'級別'也是特定於您的應用程序的東西)

+0

這正是我所需要的!非常感謝你! – 2011-03-07 18:36:41

+0

沒問題,如果你用這個答案,請按左邊的綠色檢查;) – Nanne 2011-03-07 18:37:36

0

爲什麼你這樣做呢?如果您使用的是LevelListDrawable,則會在關卡更改時自動更改繪圖。也就是說,如果你真的需要得到它的繪製對象,你可以嘗試這樣的事情(比如你需要3級繪製):

ImageView iv = (ImageView)findViewById(R.id.imageview); 
LevelListDrawable lld = (LevelListDrawable)iv.getDrawable(); 
int temp = lld.getLevel(); 
lld.setLevel(3); 
Drawable d = lld.getCurrent(); 
lld.setLevel(temp); 

有可能實現更簡單的方法你想要什麼儘管如此,如果你可以詳細說明。

+0

這是因爲我有自定義繪製精靈的GLSurfaceView派生。我使用基於可繪製ID的自己書寫的TExtureProvider類加載紋理。 – 2011-03-07 18:40:44