Resource Manager 工具
前一小節(jié)我們介紹了 Android 的應(yīng)用資源相關(guān)的知識(shí),本小結(jié)我們學(xué)習(xí)如何使用 Resource Manager 管理應(yīng)用的界面資源。
1. Resource Manager
Resource Manager 是一個(gè)用于導(dǎo)入、創(chuàng)建、管理和使用應(yīng)用資源的工具窗口。
我們可以通過(guò)以下兩種方式打開(kāi)該工具窗口:
-
從菜單欄中依次選擇 View > Tool Windows > Resource Manager;
-
在左側(cè)欄中選擇 Resource Manager。
Resource Manager 工具窗口的主體界面如下圖:
-
點(diǎn)擊 Add 可向項(xiàng)目添加新的資源。我們可以添加圖像資源、矢量資源、字體、資源文件和值,也可以將資源導(dǎo)入到項(xiàng)目中;
-
通過(guò)模塊下拉列表,我們可以查看某個(gè)模塊的專屬資源;
-
使用搜索欄在項(xiàng)目的所有模塊中搜索資源;
-
Resource Manager 按類型對(duì)資源進(jìn)行分組。使用這些標(biāo)簽頁(yè)可在各種資源類型之間切換;
-
使用過(guò)濾器按鈕,可以查看來(lái)自本地依賴模塊、外部庫(kù)和 Android 框架的資源;
-
主要內(nèi)容區(qū)域會(huì)顯示資源的預(yù)覽效果。右鍵點(diǎn)擊某項(xiàng)資源可打開(kāi)上下文菜單,我們可以通過(guò)該菜單重命名資源、在應(yīng)用中搜索使用了該資源的位置,以及執(zhí)行其他操作;
-
點(diǎn)擊這些按鈕能夠以圖塊或列表形式列出資源;
-
點(diǎn)擊這些按鈕可更改資源的預(yù)覽大小。
除了上面提到的功能之外,Resource Manager 還提供了一種將可繪制對(duì)象批量導(dǎo)入項(xiàng)目中的簡(jiǎn)單方法。我們可以將圖片文件(包括 SVG 文件)直接拖放到 Resource Manager 中,也可以使用 Import Drawables 向?qū)А?/p>
雙擊某項(xiàng)資源可在 Resource Manager 中查看更詳細(xì)的信息。如果某項(xiàng)資源有多個(gè)版本,此詳細(xì)視圖將顯示每個(gè)版本以及所有關(guān)聯(lián)的限定符,我們還可以在此視圖中雙擊特定版本以在編輯器窗口中打開(kāi)它。
Tips:上圖中顯示適用于不同屏幕密度的圖片資源版本。
2. 可繪制對(duì)象導(dǎo)入項(xiàng)目
2.1 導(dǎo)入可繪制對(duì)象
我們可以將資源文件或文件夾直接拖放到 Resource Manager 中,導(dǎo)入圖片資源。將這些資源放入 Resource Manager 中后,系統(tǒng)會(huì)顯示 Import drawables 對(duì)話框,我們可以在其中查看這些資源的摘要并在導(dǎo)入之前添加任何所需的限定符。
要將圖片資源導(dǎo)入項(xiàng)目中,請(qǐng)執(zhí)行以下操作:
將圖片直接拖放到 Android Studio 的 Resource Manager 窗口中。或者,我們也可以點(diǎn)擊加號(hào)圖標(biāo) (+),選擇 Import Drawables,然后選擇要導(dǎo)入的文件和文件夾。
系統(tǒng)會(huì)顯示 Import drawables 對(duì)話框。此對(duì)話框顯示了我們要導(dǎo)入的資源列表。我們可以通過(guò)點(diǎn)擊每個(gè)資源預(yù)覽上方的文本框來(lái)重命名資源。
如果我們要提供同一資源的多個(gè)版本,請(qǐng)務(wù)必添加設(shè)備配置限定符,以描述資源支持的特定配置。例如,如果要為同一資源提供適用于不同屏幕密度的多個(gè)版本,則可以為每個(gè)版本添加一個(gè) Density 限定符。請(qǐng)注意,如果兩項(xiàng)或多項(xiàng)資源具有相同的名稱和限定符,則僅導(dǎo)入一個(gè)版本。
為資源命名并添加任何所需的限定符后,點(diǎn)擊 Next。
下一個(gè)屏幕會(huì)顯示要導(dǎo)入的資源的摘要。準(zhǔn)備好導(dǎo)入后,點(diǎn)擊 Import。在 Resource Manager 窗口中,我們的資源現(xiàn)在已可供我們?cè)陧?xiàng)目中使用了。
2.2 自動(dòng)解析密度
當(dāng)我們導(dǎo)入文件或文件夾時(shí),如果其路徑包含密度限定符,Resource Manager 會(huì)自動(dòng)在導(dǎo)入過(guò)程中應(yīng)用密度限定符。下表列出了受支持的不同密度在 Android 系統(tǒng)中的表示方法:
密度 | Android 密度限定符 |
---|---|
低密度(約 120dpi) | ldpi |
中密度(約 160dpi) | mdpi |
高密度(約 240dpi) | hdpi |
超高密度(約 320dpi) | xhdpi |
超超高密度(約 480dpi) | xxhdpi |
超超超高密度(約 640dpi) | xxxhdpi |
以下示例說(shuō)明了導(dǎo)入后輸入路徑如何轉(zhuǎn)換為資源路徑:
-
Android 密度限定符:hdpi
輸入路徑:/UserFolder/icon1/hdpi/icon.png
資源路徑:< projectFolder >/< moduleFolder >/src/main/res/drawable-hdpi/icon.png -
Android 密度限定符:xhdpi
輸入路徑:/UserFolder/icon1/abc-xhdpi/icon.png
資源路徑:< projectFolder >/< moduleFolder >/src/main/res/drawable-xhdpi/icon.png -
Android 密度限定符:xxhdpi
輸入路徑:/UserFolder/icon1/abc-xxhdpi/icon.png
資源路徑:< projectFolder >/< moduleFolder >/src/main/res/drawable-xxhdpi/icon.png
3. 可繪制對(duì)象布局導(dǎo)入布局
我們可以將可繪制對(duì)象從 Resource Manager 直接拖放到布局中。將資源放到布局上時(shí),Resource Manager 會(huì)為該可繪制對(duì)象創(chuàng)建相應(yīng)的 ImageView,如下圖所示:
我們也可以直接拖放到布局的 XML 上,如下圖所示:
將可繪制對(duì)象放到 Text 標(biāo)簽頁(yè)中的布局上時(shí),生成的代碼會(huì)根據(jù)放置布局的位置而有所不同:
-
如果將可繪制對(duì)象放到空白區(qū)域,Resource Manager 會(huì)生成相應(yīng)的 ImageView;
-
如果將可繪制對(duì)象放到布局 XML 中的任何屬性上,Resource Manager 會(huì)將該屬性值替換為對(duì)該可繪制對(duì)象的引用。請(qǐng)注意,我們還可以將任何其他資源類型拖放到 XML 屬性上以替換屬性值;
-
如果將可繪制對(duì)象放到現(xiàn)有的 ImageView 元素上,Resource Manager 會(huì)替換相應(yīng)的源代碼屬性。
4. 小結(jié)
本節(jié)課程我們主要學(xué)習(xí)使用 Resource Manager 管理應(yīng)用的界面資源。本節(jié)課程的重點(diǎn)如下:
- 掌握 Resource Manager 導(dǎo)入應(yīng)用資源的方法;
- 掌握 Resource Manager 將資源導(dǎo)入布局的方法。