Android中的資源與國際化!
好久沒更新部落格了,今天給大家分享一下Android中的資源與國際化的問題,通常我們新建一個Android工程,目錄結構如下圖所示:
我們主要看一下layout與values目錄,layout裡的xml檔案的我們應用使用佈局的檔案,values裡的sring.xml是用來存放文字資源,一個key對應一個value值。
但是在實際應用開發中,通常橫屏(land)與豎屏(port)可能佈局檔案有所不同,這時候我們可以獨自定義橫屏與豎屏的佈局檔案( 檔名字要一樣),預設情況是載入layout目錄裡的佈局檔案。同樣應用還要支援不同的語言,如果我們應用裡沒有定義手機所用語言的資源時,會預設載入values的值。
為了方便大家理解下面做個簡單的Demo.具體步驟如下:
第一步:新建一個Android工程,命名為ResourceDemo。
我們看一下layout目錄下的自動生成的main.xml佈局檔案,程式碼如下:
其中我們程式顯示的文字內容是在values/string.xml檔案中對應的hello的值,程式碼如下:
執行效果如下圖所示:
port(豎屏模式)效果:
Ctrl+F11快捷鍵模擬器變成橫屏(land)模式:
第二步:我們定義land與port模式的佈局檔案,即在res/目錄下建立layout-land與layout-port兩個資料夾,目錄結果如下所示:
layout-land目錄下main.xml和layout內容基本一樣,只是顯示內容不同,程式碼如下:
同理layou-port目錄下main.xml程式碼如下:
當然我們顯示的內容是在values/string.xml檔案裡定義的,這裡加了兩個值,程式碼如下:
然後再次執行程式,效果如下:
豎屏(port)效果:
橫屏(land)下效果:
通過上面例子可以得出如果我們已經定義了橫屏與豎屏佈局檔案時,就不會在載入layout裡的同名佈局檔案。
下面我們來講點國際化,通常國際化我們只要在res/目錄下在重新定義values-國家編號,如values-zh-rCN簡體漢語,values-zh-rTW繁體,values-jp日語等。
目錄結構如下圖所示:
這裡我只在values-zh-rCN作了改動,程式碼如下:
我們執行程式之前,把手機語言改成中文,在settings(設定)->language & keyboards(語言與鍵盤)目錄下,選擇簡體中文,如下圖所示:
最然在執行上述工程,效果如下:
這時候我們應用的顯示內容就為中文了,而不去顯示values/strings.xml裡的內容。
Ok~今天就到這裡,希望對大家特別是初學者有點幫助.Thx~
相關文章
- Android國際化Android
- Java中的國際化Java
- 使用spring實現資源國際化Spring
- Android 之 尺寸的國際化Android
- Rails 訊息資源的國際化(I18n)AI
- Android實現國際化Android
- Android 之 語言 國際化Android
- Struts2【UI標籤、資料回顯、資源國際化】UI
- Django國際化與本地化指南Django
- Android學習筆記-國際化Android筆記
- QT中文亂碼與國際化支援QT
- 讓資料不只限於資料庫,國際化開源團隊需要你的加入資料庫
- 黃東旭提出:“最好的國產化是國際化。” 而開源社群
- java國際資源化檔案配置j2se+j2eeJava
- 網際網路新貴BAT國際化之路的得與失BAT
- Struts框架的國際化框架
- Spring Boot應用的國際化與本地化支援Spring Boot
- 國際化思考
- ios國際化iOS
- Flutter高階(二)——國際化與換膚Flutter
- Android 國際化之多語言適配小記Android
- Android國際化(多語言)實現,支援8.0Android
- JAVA的國際化機制Java
- React小知識(3) - 國際化中碰到的問題React
- Java 國際化(一)Java
- Jsf國際化JS
- Android外掛化(三):載入外掛apk中的Resource資源AndroidAPK
- iOS 國際化 && 本地化iOS
- iOS國際化(本地化)iOS
- 清除Android工程中沒用到的資源Android
- Java模組化的國際化實現- GunnarJava
- 實用的 Flutter 國際化指南Flutter
- Java的國際化問題 (轉)Java
- 資料對於製造業的國際化影響
- 鴻蒙Next應用全球化之路:國際化與本地化鴻蒙
- Strapi助力Flutter開發國際化App - 整理Sqlite資料庫與圖片APIFlutterAPPSQLite資料庫
- Spring Webflux國際化SpringWebUX
- Webnovel 國際化實踐Web