iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 11
0
自我挑戰組

Android API超初學!!系列 第 11

[Android API] [Day 11] Android 資源管理

  • 分享至 

  • xImage
  •  

一個APP一定會有一大堆檔案要使用、例如圖片、聲音、文字等,所以現在來學習如何管理這些資源。一樣從官網學習。

根據不同的裝置,可提供替代資源,讓系統在runtime時決定該用哪些資源。例如不同大小的螢幕要使用不同大小的圖片、多國語言包等。

APP的所有資源都會透過R class生成一個整數id,所以我們可根據這些id來使用這些資源。

所有資源都被放在res/資料夾底下,最好要有清楚的分類,免得很難找。官網提供很多子資料夾命名規則,如color/、drawable/等,使用時再去看就好。

例如,下圖為開啟一個空的Android Project後,default res資料夾的內容。可看出裡面不只可放png檔,也可放xml檔:
https://ithelp.ithome.com.tw/upload/images/20181022/201124393oe9vQhKPs.jpg

注意:不可將檔案直接放在res/目錄底下,會編譯錯誤。

替代資源的命名規則

替代資源的命名規則為
<resources_name>-<config_qualifier_1>[-<config_qualifier_2>...]
例如:

res/
    drawable/
		hellp.png   # default顯示的圖片
	drawable-night/
		hello.png   # 晚上顯示的圖片,檔名要一樣
	drawable-xlarge-notnight/
		hello.png   # 超大螢幕&白天顯示的圖片,檔名要一樣
                    # config_qualifier的順序要跟官網上的順序一樣

官網也提供有支援的config-qualifier名稱可使用,一樣要用時再看就好。不過要注意每個Android版本的支援度。

其他的一些注意事項

  • 資料夾名、檔名大小寫不分,使用大寫只是增加可讀性
  • 每種同類型的config_qualifier只能使用一個,例如不可以用drawable-large-xlarge (大螢幕&超大螢幕時使用),真的要用的話要分兩個資料夾
  • 加上config_qualifier之後,系統會試圖尋找最適合的資源來使用,找不到就default囉

把這些資源命名寫進xml檔,編譯之後就可在R class底下找到這些資源。工具aapt會自動產生R.java,每次編譯都會自動更新。


上一篇
[Android API] [Day 10] Android 基本4元件
下一篇
[Android API] [Day 12] Gradle (1)
系列文
Android API超初學!!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言