目錄 Android多解析度適配實踐【0】基礎適配篇(撰寫中)Android多解析度適配實踐【1】使用字體圖標,精準控制不同解析度的圖標樣式(內含兩枚神器)Android多解析度適配實踐【2】Iconify中文使用說明Android多解析度適配實踐【3】Iconify擴展,自製或導入SVG字體圖標庫
目錄
Android多解析度適配實踐【0】基礎適配篇(撰寫中)
Android多解析度適配實踐【1】使用字體圖標,精準控制不同解析度的圖標樣式(內含兩枚神器)
Android多解析度適配實踐【2】Iconify中文使用說明
Android多解析度適配實踐【3】Iconify擴展,自製或導入SVG字體圖標庫(撰寫中)
...
大約每周一篇的頻率更新,算是學習實踐筆記,喜歡請關註哦。
為什麼要使用字體圖標,字體圖標的好處
一個優秀的開發者應該會很討厭浪費時間在瑣碎的事情上,比如為APP中的每個圖標都製作並拷貝5種 (ldpi, mdpi, hdpi, xhdpi, xxhdpi) 尺寸的圖片, 並把它們正確地放到5個不同的drawable目錄,並且在想要改變顏色或者大小的時候重新重覆這煩人的一切。而且在需要他們縮放的時候,一不留神圖像就糊掉。
實際上在網頁前端這個行當裡面早就面臨過類似的問題並且頭疼過很久,考慮過不少方法(大圖CSS縮小顯示、類Android思路的多套圖標適配、SVG矢量等)。經過他們實踐出來了一種比較好的解決方案——圖標字體化。在Android開發裡面,也是完全適合採用這種方案的!
甚至除了減少文件體積和可輕易縮放外,字體圖標還帶來了額外的優點——
- 輕易改變顏色
- 輕易產生陰影
- 動畫支持
如何使用字體圖標
字體圖標是以字體的形式存在的,所以使用字體圖標的第一步是先要找到這些字體,在後面我會提到去哪找甚至怎麼自己製作。這裡先關註如何使用。在Android上使用字體圖標本來是不如網頁方便的,但我們有神器——
神器1:越來越贊的Iconify
Iconify是一個讓你在文本、ActionBar, 以及 EditTexts中輕易使用圖標字體的開源庫,並自帶了海量字體圖標合集(前端常用的FontAwesome, Entypo, Typicons等圖標全都集成進去了)。上個月剛發佈v2版,作者給v2版寫的更新介紹Iconify just got a lot better本身就是最好的使用教程。或者看這篇可能是最好的中文說明(撰寫中,喜歡請關註)。
它允許這樣的編程:
<IconTextView android:text="Welcome {fa-smile-o} {fa-hand-peace-o} !" android:shadowColor="#22000000" android:shadowDx="0" android:shadowDy="5" android:shadowRadius="1" android:textSize="30sp" android:textColor="#2A9BDA" ... />
IconTextView會將所有的{..}替換為對應的圖標。這些圖標的特性跟字體/Text是一模一樣的,你可以控制它的顏色,大小,陰影。而且無論多大,都不會糊掉!上面的代碼{fa-smile-o}等是來自FontAwesome的圖標,你還可以把它用在TextView, Button,甚至ToolBar菜單中(使用IconDrawable)。
效果
它看起來是這樣的,很棒對吧,不需要處理任何圖片哦!
對了,它本身就集成了多個圖標庫,連MaterialDesign圖標都提供了!
噢,對了,它還支持旋轉!
現在你還有什麼理由不使用它麽?快來10分鐘入門(撰寫中,喜歡請關註)。
所以它的原理是什麼?
圖標並不是真正的圖片,而是特殊的字體,有一個特殊的編碼, Iconify 為所有的IconTextView準備好這些字體,並且將{...}的部分映射到對應的字體。
uf039 <- fa_align_justify
uf036 <- fa_align_left
uf038 <- fa_align_right
uf270 <- fa_amazon
uf0f9 <- fa_ambulance
....
神器2:阿裡巴巴圖標庫
在Iconify中沒找到合適的圖標怎麼辦?Iconify是支持導入自己的字體的。詳細方法可以參照Android多解析度適配實踐【3】Iconify擴展,自製或導入SVG字體圖標庫(撰寫中,喜歡請關註)。然後去哪裡找字體呢?網上搜一下字體圖標庫會找到很多,這裡強推阿裡巴巴圖標庫,是中國第一個最大且功能最全的矢量圖標庫。
至此,萬標俱備,快去得瑟吧!
問啊-定製化IT教育平臺,牛人一對一服務,有問必答,開發編程社交頭條 官方網站:www.wenaaa.com
QQ群290551701 聚集很多互聯網精英,技術總監,架構師,項目經理!開源技術研究,歡迎業內人士,大牛及新手有志於從事IT行業人員進入!