Android 8.0自適應圖標

原文首發於微信公衆號:jzman-blog,歡迎關注交流!php

Android 8.0 引入了自適應應用啓動圖標,可在不一樣的設備中顯示不一樣的圖標,如自適應圖標能夠在一臺設備上顯示爲圓形,在另外一臺設備上顯示爲方形,每一個 OEM 廠商都會提供一個 mask,系統會自動將自適應圖標渲染成相同的形狀,自適應圖標也可使用到設置、分享等想保持統一圖標風格的位置。android

自適應圖標支持的 mask 因不一樣設備而不一樣

可經過定義背景和前景的兩個圖層來控制自適應圖標的外觀,必須提供一個沒有背景、沒有陰影的圖片做爲圖標的形狀。微信

自適應圖標的前景、背景以及 mask

Android 7.1 (API級別25) 以前的啓動圖標在標準屏幕密度下是 48 * 48 dp,如今必須按照以下標準定義自適應圖標的圖層:工具

  1. 前景層和背景層的尺寸大小必須是 108 * 108 dp;
  2. mask 可視範圍的尺寸大小是 72 * 72 dp;
  3. 系統會在圖標外層預留 18dp 用以建立有趣的視覺效果,視覺效果因不一樣設備的啓動器而異

**注意:**OEM 廠商指定的遮罩半徑最短 33dp學習

建立自適應圖標

建立自適應圖標可使用 Android Studio 提供的 Image Asset Studio 工具,使用該工具能夠建立各類不一樣類型的圖標,該工具會爲每一個通用屏幕密度生成一組具備相應分辨率的圖標,固然使用 Image Asset Studio 還能夠生成其餘須要適配的一系列圖標,下面是 Image Asset Studio 的操做界面,以下圖所示:spa

imageAsset.png

選擇前景和背景以後,Image Asset Studio 會自動生成相應分辨率的圖標文件,參考以下:3d

imageAssetResult.png

上述目錄中,目錄 mipmap-anydpi-v26 就是爲 Android 8.0 以上建立的啓動器圖標,當 Target Sdk Version 爲 API 26 之上的時候,系統會自動選擇該目錄下的圖標文件做爲應用圖標文件,其圖標文件內容以下:code

<!--ic_launchr.xml-->
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@color/ic_launcher_background"/>
    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>
複製代碼

上述文件中背景選擇的是顏色,前景是選擇的是一張圖片,最終生成的自適應圖標文件效果對好比下:cdn

背景 前景 疊加效果
#4E4C9E
ic_launcher_foreground.png
ic_launcher.png

固然,若是是 Android 8.0 之前的版本,則會使用對應分辨率下的圖標文件,這樣就很方便的完成了圖標文件的適配。能夠選擇關注我的微信公衆號:jzman-blog 獲取最新更新,一塊兒交流學習!xml

相關文章
相關標籤/搜索