1. 程式人生 > >Android O自適應啟動圖示

Android O自適應啟動圖示

Android 8.0(API級別26)引入了自適應啟動器圖示,可以在不同的裝置模型中顯示各種形狀。例如,自適應啟動器圖示可以在一個OEM裝置上顯示圓形形狀,並在另一個裝置上顯示一個圓形。每個裝置OEM都提供一個遮罩,系統隨後使用該遮罩來渲染具有相同形狀的所有自適應圖示。自適應啟動器圖示也用於快捷方式,設定應用程式,共享對話方塊和總覽螢幕。

適用於自適應圖示線框的各種蒙版 適用於自適應圖示的各種蒙版

圖1.自適應圖示支援各種裝置的不同掩碼。

你可以通過定義2層來控制自適應啟動器圖示的外觀,包括背景和前景。您必須提供圖示圖層作為可繪圖,而無需在圖示輪廓周圍使用蒙版或背景陰影。

建立一個自適應圖示的等距插圖

圖2.自適應圖示是使用2個圖層和一個蒙版來定義的(包括背景圖層和前景圖層,這兩個可以找設計師要)。

在Android 7.1(API級別25)及更早版本中,啟動器圖示大小為48 x 48 dp。您現在必須使用以下準則來調整圖示圖層的大小:

  • 兩層的尺寸必須為108 x 108 dp(背景圖層和前景圖層尺寸都是108*108dp)。
  • 圖示的內部72 x 72 dp出現在遮罩的視口內(前景圖層中間的72*72圖層就是在手機介面上展示的應用圖示範圍,一般應用圖示內容尺寸會比72*72dp尺寸小,因為邊緣留空白會比較美觀,如下面白色小動物離邊緣都留有距離)。
  • 系統在四面各留出18dp,以產生有趣的視覺效果,如視差或脈衝。

注意:動畫視覺效果由受支援的啟動器生成。視覺效果可能因發射器而異。

注意:裝置OEM可以指定一個掩模,該掩模可以包含沿形狀的某些點短至33 dp的半徑。

適用於自適應圖示的視差演示 拾取動畫演示應用於自適應圖示

圖3.自適應圖示支援各種視覺效果。

警告:如果您沒有使用必要的圖層更新啟動器圖示,則圖示與系統UI顯示的其他圖示看起來不一致,並且不支援視覺效果。

在XML中建立自適應圖示

要使用XML將自適應圖示新增到應用程式,請首先更新android:icon應用程式清單中的 屬性以指定可繪製資源(如下定義了名為ic_launcher的資源,名字可以自定義,注意檔案目錄,如下引用的是mipmap檔案下的資源,適配8.0 需要定義xml,除此之外還需要放一個與xml同名字的應用圖示名讓8.0以下系統應用)。您還可以使用該android:roundIcon 屬性定義圖示可繪製資源android:roundIcon

如果您需要圓形遮罩的不同圖示資源,則只能使用該屬性,例如,徽標的品牌依賴於圓形形狀。以下程式碼片段說明了這兩個屬性:

<application
    …
    android:icon="@mipmap/ic_launcher"android:roundIcon="@mipmap/ic_launcher_round"
    …></application>

接下來,您必須在您的應用程式中使用Android 8.0(API級別26)建立替代的可繪製資源res/mipmap-anydpi/ic_launcher.xml然後,您可以使用該<adaptive-icon>元素為圖示定義前景層和背景層的繪圖。<foreground><background> 內部元件都支援android:drawable屬性(注意: android studio3.0以下的編譯器無法找到adaptive-icon標籤,但是不影響編譯和執行,android studio3.0可順利編譯不報錯)。

<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
  <background android:drawable="@drawable/ic_background"/>
  <foreground android:drawable="@drawable/ic_foreground"/>
</adaptive-icon>

您還可以通過在封閉它們定義背景和前景可繪製作為元素<foreground><background>元素。

如果要將常規自適應啟動器圖示應用於快捷方式的相同蒙版和視覺效果,請使用以下技巧之一:

  • 對於靜態快捷方式,請使用該<adaptive-icon>元素。

有關快捷鍵的更多資訊,請參閱 應用程式快捷鍵