Android使用IconFont阿里矢量圖標(biāo)

什么是矢量圖

矢量圖 svg 是 W3C(World Wide Web ConSortium 國(guó)際互聯(lián)網(wǎng)標(biāo)準(zhǔn)組織)在2000年8月制定的一種新的二維矢量圖形格式,也是規(guī)范中的網(wǎng)絡(luò)矢量圖形標(biāo)準(zhǔn)修赞。矢量圖像用點(diǎn)和線來(lái)描述物體蛾坯,所以文件會(huì)比較小鸿脓,同時(shí)也能提供高清晰的畫(huà)面。用戶可以任意縮放圖像顯示汪茧,而不會(huì)破壞圖像的清晰度署尤、細(xì)節(jié)等∈蓖遥總體來(lái)講,SVG文件比那些GIF和JPEG格式的文件要小很多厅瞎,因而下載也很快饰潜。

只要跟著本文章的步驟保證你能很快的集成到項(xiàng)目中使用
其它文章

OkHttp3簡(jiǎn)單使用和封裝使用
Retrofit2.0+RxJava2.0封裝使用
Android開(kāi)發(fā) 多語(yǔ)言、指紋登錄和簸、手勢(shì)登錄
Android Studio 使用SVN 主干和分支合并代碼

優(yōu)缺點(diǎn)
  1. 文件小彭雾,圖像中保存的是線條和圖塊的信息,所以矢量圖形文件與分辨率和圖像大小無(wú)關(guān)锁保,只與圖像的復(fù)雜程度有關(guān)薯酝,圖像文件所占的存儲(chǔ)空間較小。

  2. 圖像可以無(wú)級(jí)縮放爽柒,對(duì)圖形進(jìn)行縮放吴菠,旋轉(zhuǎn)或變形操作時(shí),圖形不會(huì)產(chǎn)生鋸齒效果浩村。

  3. 矢量圖縮放自由且不會(huì)失真做葵,完全適配于任何分辨率的屏幕。

  4. 最大的缺點(diǎn)是難以表現(xiàn)色彩層次豐富的逼真圖像效果心墅。

  5. 跨平臺(tái)酿矢,因?yàn)槭噶繄D是純文本格式來(lái)描述的,所以不受平臺(tái)的限制怎燥。

6.在xml中無(wú)法實(shí)時(shí)顯示圖片瘫筐。

為什么要用IconFont矢量圖標(biāo)

開(kāi)發(fā)app時(shí)候?yàn)榱诉m配不同的手機(jī)屏幕,需要切很多套圖铐姚,然后我們很繁瑣的給圖標(biāo)命名策肝,然之后放入不同的drawable文件夾,要做很多得無(wú)用功谦屑,而現(xiàn)在阿里巴巴給我們提供了矢量圖標(biāo)庫(kù)驳糯,給我節(jié)省了大量的麻煩而又無(wú)用的工作,我們不再需要往res下的資源文件夾放各種圖標(biāo)

先看一下某網(wǎng)迭代了五年項(xiàng)目的Analyze APK詳情氢橙,res資源下的圖片占據(jù)了二十多MB,這些圖片圖標(biāo)都是會(huì)用到的酝枢,所以都會(huì)打包到APK中,無(wú)疑增大了APK的大小悍手。


Analyze APK
Android 使用阿里巴巴IconFont圖標(biāo)
1. 第一步:打開(kāi)阿里巴巴IconFont官網(wǎng) ,登陸后的首頁(yè)(不用解釋怎么登陸的了吧)帘睦。
IconFont首頁(yè)
2. 第二步:點(diǎn)擊第一步 三八節(jié)項(xiàng)圖標(biāo)后袍患,然后選擇你想要的圖標(biāo)后點(diǎn)擊加入購(gòu)物車。
選擇需要的圖標(biāo)加入購(gòu)物車
3. 第三步:在第二步中選擇想要的圖標(biāo)加入購(gòu)物車后點(diǎn)擊右上角的購(gòu)物車圖后竣付,點(diǎn)擊添加至項(xiàng)目诡延,如果沒(méi)有項(xiàng)目先創(chuàng)建一個(gè)項(xiàng)目。
添加到項(xiàng)目
4. 第四步:點(diǎn)擊第三步中的添加至項(xiàng)目按鈕后古胆,會(huì)跳到我的項(xiàng)目中肆良,我們后續(xù)加入圖標(biāo)都會(huì)在這里。然后點(diǎn)擊下載至本地按鈕把資源下載到本地磁盤(pán)逸绎。
項(xiàng)目中的圖標(biāo)
5. 第五步:打開(kāi)下載的資源包惹恃,拿到iconfont.ttf文件,此文件就是我們所需要的資源棺牧。將iconfont.ttf文件復(fù)制粘貼到我們Android Studio項(xiàng)目assets文件夾中巫糙。
iconfont.ttf資源

放進(jìn)assets中
6. 第六步:打開(kāi)IconFont我的項(xiàng)目,找到圖標(biāo)的代碼颊乘,或者打開(kāi)我們下載的資源包中的demo_index.html也可以看到圖標(biāo)代碼参淹。
項(xiàng)目中的圖標(biāo)代碼
7. 第七步:把IconFont我的項(xiàng)目中的圖標(biāo)代碼添加到AndroidStudio的string.xml中。
添加到string.xml中
8. 第八步:測(cè)試一波乏悄,在xml中寫(xiě)一個(gè)TextView浙值,然后再Activity中設(shè)置下Typeface。

在xml中檩小,text值設(shè)置string.xml中的name亥鸠,textSize可以設(shè)置圖標(biāo)大小,textColor可以設(shè)置圖標(biāo)的顏色识啦。

xml布局

在Activity中代碼:首先通過(guò)assets中的iconfont.ttf創(chuàng)建Typeface類负蚊,然后給具體的TextView設(shè)置setTypeface。

    Typeface font = Typeface.createFromAsset(getAssets(), "iconfont.ttf");
    womanIcon.setTypeface(font);
    womanIcon.setText(getResources().getString(R.string.woman));
Activity中代碼
到這我們看下效果圖
效果圖
有什么問(wèn)題呢
  • 每次都要給TextView設(shè)置Typeface颓哮。
進(jìn)一步封裝
9. 第九步:我們封裝一個(gè)類家妆,不需要手動(dòng)設(shè)置Typeface。
自定義TextView
package com.kelin.iconfont;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.widget.TextView;

/**
 * 創(chuàng)建: PengJunShan on 2019-02-26  14:52 描述:
 */
@SuppressLint("AppCompatCustomView")
public class FontIconView extends TextView {

  public FontIconView(Context context) {
    super(context);
    init(context);
  }

  public FontIconView(Context context, AttributeSet attrs) {
    super(context, attrs);
    init(context);
  }

  public FontIconView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init(context);
  }

  /**
   * 初始化
   * @param context
   */
  private void init(Context context) {
    //設(shè)置字體圖標(biāo)
    Typeface font = Typeface.createFromAsset(context.getAssets(), "iconfont.ttf");
    this.setTypeface(font);
  }


}

在xml中直接使用冕茅,無(wú)需在Activity中手動(dòng)設(shè)置Typeface了伤极。
image.png
上傳圖標(biāo)到項(xiàng)目

在實(shí)際工作中IconFont圖標(biāo)無(wú)法提供我們想要的圖標(biāo)怎么辦?可以讓公司ui做一個(gè)SVG矢量圖姨伤,我們把這個(gè)圖標(biāo)上傳到IconFont中我的項(xiàng)目中哨坪,然后就可以普通的圖標(biāo)一樣使用了。

在我的項(xiàng)目中點(diǎn)擊上傳圖標(biāo)到項(xiàng)目按鈕乍楚,然后選擇一張svg矢量圖上傳当编。上傳成功后再我的項(xiàng)目中可以看到自己上傳的圖標(biāo),然后下載至本地在AS中替換iconfont.ttf文件 在string.xml中添加新的圖標(biāo)名字 就可以使用了

我的項(xiàng)目
選擇矢量圖上傳
看到剛剛上傳的圖標(biāo)
引用自己上傳的圖標(biāo)
效果圖
點(diǎn)擊下方喜歡收藏徒溪,萬(wàn)一后期項(xiàng)目用得到呢
謝謝進(jìn)入我的博客忿偷,請(qǐng)多多點(diǎn)評(píng)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末金顿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鲤桥,更是在濱河造成了極大的恐慌揍拆,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茶凳,死亡現(xiàn)場(chǎng)離奇詭異嫂拴,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)贮喧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)顷牌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人塞淹,你說(shuō)我怎么就攤上這事∽锕” “怎么了饱普?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)状共。 經(jīng)常有香客問(wèn)我套耕,道長(zhǎng),這世上最難降的妖魔是什么峡继? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任冯袍,我火速辦了婚禮,結(jié)果婚禮上碾牌,老公的妹妹穿的比我還像新娘康愤。我一直安慰自己,他們只是感情好舶吗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布征冷。 她就那樣靜靜地躺著,像睡著了一般誓琼。 火紅的嫁衣襯著肌膚如雪检激。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天腹侣,我揣著相機(jī)與錄音叔收,去河邊找鬼。 笑死傲隶,一個(gè)胖子當(dāng)著我的面吹牛饺律,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播跺株,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蓝晒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼腮出!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起芝薇,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤胚嘲,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后洛二,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體馋劈,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年晾嘶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了妓雾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡垒迂,死狀恐怖械姻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情机断,我是刑警寧澤楷拳,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站吏奸,受9級(jí)特大地震影響欢揖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奋蔚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一她混、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧泊碑,春花似錦坤按、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至沉桌,卻和暖如春谢鹊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背留凭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工佃扼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蔼夜。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓兼耀,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瘤运,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容