2011-12-31 89 views
0

在我的應用程序中更改設置我將更改背景和文本顏色(例如,在Google Sky Map應用程序中,您可以設置更改背景和文本顏色的「夜間模式」),我該怎麼做對於這兩個更改使用相同的佈局是同樣的事情?如果可能的話,我也會改變一些文本(例如我寫意大利文的單詞,我會用英文單詞來改變它)。有人可以幫助我給任何教程,例子或代碼嗎?非常感謝。Android - 如何通過代碼

回答

0

您可以使用特定的方法編程方式更改文本和背景顏色上的控件,如:

View someView = findById(R.id.someView); 
view.setBackgroundResource(R.drawable.someDrawable); 

但是這將是一個接一個。您可以創建一對夫婦的風格,但不幸的是設置widget的風格,它已經建立後的繁瑣的,因爲你不得不做,就像你在上面做了單獨的呼叫:

View someView = findById(R.id.someView); 
(TextView) view).setTextColor(getResources().getColor(R.color.white)); 
(TextView) view).setTypeface(Typeface.DEFAULT_BOLD); 

最後,還有主題這是在定義所有UI的資源中定義的樣式集合。主題可以一次設定一個活動時創建:

http://developer.android.com/guide/topics/ui/themes.html

Choosing a style/theme programmatically at run time

至於文本可以使用的strings.xml資源外部化輕鬆的文字,並保持一個意大利版和英文版,並且Android將使用與用戶的區域設置最匹配的正確版本。如果Android無法爲用戶的語言環境找到匹配的字符串資源,將會使用默認的strings.xml。對於strings.xml默認爲英語,併爲意大利語創建strings_it.xml通常是一個好主意。

http://developer.android.com/guide/topics/resources/index.html

+0

是的,我知道的strings.xml不同語言的版本,但我想要做的是改變語言的一個按鈕的壓力。 'SharedPreferences'可以做到這一點嗎?還改變背景和文字顏色?怎麼樣?謝謝。 – Valerio 2011-12-31 16:02:49

+0

我的應用程序在res/raw中有xml文件作爲數據文件。我想使用另一個xml文件,其中有其他數據與另一個xml文件有一些差異。用戶必須決定要使用哪個文件。我不知道你是否知道我的意思。 – Valerio 2011-12-31 16:22:44