2009-06-19 138 views
6

從O'Reilly出版的 「Android應用開發」,由裏克·羅傑斯,約翰·隆巴多,Zigurd Mednieks &布雷克美克,23頁:@在AndroidManifest.xml文件

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
    /> 

接第44頁:

<application android:icon="@drawable/icon2"> 

@在以上每個片段中的含義是什麼?

回答

7

在這種情況下:

android:layout_width="fill_parent" 

的屬性,android:layout_width值,直接指定了引號內,fill_parent。在另一種情況下:

android:text="@string/hello" 

爲屬性,android:text="@string/hello"值,在其他地方指定。這在字符串的開始處由@指示。在這個例子中它是@string/hello。該值位於資源中。

來自Android Developers站點的The AndroidManifest.xml File中的「資源值」部分。從鏈接中找到allclaws答案。

資源值在 以下格式表示,

@ [包:]類型:命名

其中包名稱可以省略 如果資源是在同一個包 如應用程序類型是 資源類型 - 例如「字符串」或 「可繪製」 - 名稱是 標識特定資源的名稱。

6

我傾向於認爲它是具有與在資源所在做的縮寫,所以:

在常規設置中,這將是這樣的:

@繪製/圖標=/PROJECT_ROOT/RES /繪製/的icon.png

@字符串/你好= /PROJECT_ROOT/res/values/strings.xml(名爲 「你好」 的元素)

這似乎是多餘的麻煩,但它的實際工作很不錯。它也支持國際化和不同的屏幕尺寸非常容易。您只需爲不同的國家/地區代碼和佈局聲明其他資源文件,Android就會爲您選擇最適合的文件。

這篇關於internationalization here的文檔可能會讓它更清楚爲什麼他們決定這麼做。