Android — 讓APK裡的切圖容量減少95%的好方法

本文適用:UI designer, Android Developer

猜猜以下三張截圖,有哪些地方使用到切圖的Resource?

以上的截圖取自CM Security

答案是框起來的地方有使用到切圖,而其餘的元件,都是由研發實現的,包含你看到的那些小Icon。

事實上這些Icon,都是字元,只要在APK裡嵌入自己建立的Iconfont TTF檔,它所佔的容量大小,會比全部Icon都使用切圖還要少95%

也因為它是以字元的形態顯示,具有向量的特性,和以下的優勢:

  1. 放大、縮小都不會失真,只要按照定義文字的方式去標示規格即可。
  2. 它可以下陰影的參數,也可以上漸層顏色,設計師能發揮的空間並不少。
  3. 提高更換元件(換圖)的工作效率:倘若App裡各個不同畫面有用到一樣的Icon,日後你對某個Icon的設計不滿意,或是想改變隱喻圖示,也只要更新該字元,以及TTF檔,就可以一次替換所有場景的Icon,而不需要重新切圖。

怎麼做?! 其實很簡單,只需要以下幾個步驟:

1.先把你的Icon畫在24*24px Canvas size的檔案,並輸出成SVG格式,顏色不指定,但一般我會用黑色的,進階參數可以設定向量圖案的精度。

2.打開icomoon.io網頁,建立一個新的Project(它同時也可以管理多個Project),點進綠色手指指向的地方。

3.接著把你設計好的Icon SVG Import。

4.完成置入所需要的SVG後,在Generate Font,按下Download,就可以下載完整的TTF檔(裡頭還包含了Json,方便多人協同編輯與版本管理)。

5.每一個Icon都會有專屬的Unicode,要使用的時候,設計師要先請研發定義相應的Iconfont ID,就能方便大家識別與維護。

6.標注的時候,只要定義字級就可以決定顯示的大小,唯一要注意的是,在設計原檔裡,每個Icon元件,都要保留一個透明背景的Canvas,以便測量尺寸,最重要的是單位要設定成dp,而不要使用sp,之後我會再分享一篇文章《如何設計一套標注與切圖,滿足90%以上機種適配》,其中會談到有關於Measurement dp, sp, px和百分比該如何視情況使用。


相信你已經了解Iconfont的使用方法,如果有更好的實作方式,也歡迎交流分享。

備註一下:這不是一篇技術分享文而已,而是精實創業的產品開發其中一個方法,我在公司開發的App上已經實際應用一年了,用Iconfont的作法,來取代Icon切圖的話,將可以把原本100kb的佔用容量節省至5kb

我是Ivan,歡迎關注我的LinkedINMedium,不定期會分享更多的行業觀點、UX與UI設計知識。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.