2013-02-06 80 views
-1

爲了更好地解釋:例如我有兩種語言可用。這就是爲什麼我會有英文形象和俄羅斯形象。他們兩個我參考一個可繪製的XML文件。android drawable選擇自定義

<selector xmlns:android="http://schemas.android.com/apk/res/android" > 

<item android:drawable="@drawable/image_eng"></item> 
<item android:drawable="@drawable/image_ru"></item> 

</selector> 

我應該使用什麼類型的可繪製xml文件? 如何設置和檢測狀態並切換圖像?基本上它的工作原理類似於android:state_

+0

我想你誤解了選擇器的用法。選擇器用於顯示狀態之間的差異,如焦點,活動,按下等。它不像您可能從HTML中瞭解的選擇/下拉菜單。 – WarrenFaith

回答

2

如果我理解正確,您希望在電話是英文時使用一個圖像,而當手機使用俄語時需要使用一個圖像。您應該在可繪製文件夾上使用語言修飾符,而不是使用可繪製名稱。

因此,您將有一個名爲drawable-en的文件夾,其中包含英語圖片(例如drawable-en/image.png)。然後,有另一個名爲drawable-ru的文件夾,其中包含您的俄文版圖像,但它必須具有相同的名稱(drawable-ru/image.png)。

然後,在您的佈局XML(或您引用drawable的任何位置)只需引用@ drawable/image ... Android會自動選擇合適的圖像。

1

請閱讀Android resource Localization如何工作。

您不必爲此使用選擇器,或強制任何東西。

只是把以下文件夾中的圖片文件:

  • RES /繪製恩
  • RES /繪製茹

,並在你的代碼,你可以使用:

Drawable draw = getResources().getDrawable(R.drawable.image); 

該應用將根據手機的語言選擇合適的手機