2012-06-08 146 views
17

您好我有一個可繪製的myshape.xml,它包含一個<shape>,我無法將一個android:id設置爲形狀。Android將XML形狀設置爲可編程繪製

在我的代碼我想一個視圖的背景設置爲該文件中使用

catAll.setBackgroundDrawable(getResources().getDrawable(R.id......???));

其中myshape.xml並不在我的R檔顯示出來,因爲它沒有任何標識。我無法將ID設置爲對象。

在我的XML中,我通過輸入可繪製資源名稱來設置形狀。但我需要通過編程來完成。

回答

29

你不需要自己繪製drawable。使用這個來代替:

catAll.setBackgroundResource(R.drawable.myshape); 

以供將來參考,如果您希望得到心目中的繪製記住,在R.drawable命名空間可繪製現場。所以,你的代碼將成爲:

getResources().getDrawable(R.drawable.myshape); 

這類似於你在你的XML做什麼:

@drawable/myshape 

,而不是

@id/myshape 
+0

指出了 「R.drawable」 命名空間是關鍵,謝謝K-ballo! –

+0

現在取消了getDrawable(id)id。 –