1. 程式人生 > >Android使用Font Awesome顯示小圖示(一)

Android使用Font Awesome顯示小圖示(一)

Android中傳統的顯示圖示的方式

在平常的開發中,如果我們需要在介面上顯示某個小圖示,比如搜尋按鈕,返回按鈕,這時我們需要美工給我們切對應的png圖片,並放進對應的drawable資料夾中,這樣隨著圖示的越來越多,APK體積也會越來越大。

什麼是Font Awesome

Font Awesome是一個專為Bootstrap設計的字型檔案,我們可以通過向顯示字型一樣方便的顯示我們想要顯示的圖示。對於Android,Font Awesome使用TextView顯示小圖示,而且無需使用png圖片,只需使用一個ttf檔案,並且在這些字型中的圖片都是向量圖,是可以放大和縮小的,這就意味著每個圖示都能在所有大小的螢幕上完美呈現。

Font Awesome的優點和缺點

優點

  • 只需使用一個ttf檔案,無需美工切png圖,大大減小了apk體積,你可以驕傲的對美工MM說,這些圖示都包在我身上了,你只要喝喝咖啡就行了(崇拜的眼光已經投過來)。
  • 可以自己設定顏色,大小。Font Awesome使用TextView顯示圖示,你可以像設定字型顏色和大小一樣,設定這個圖示,可以起到很好的適配作用(媽媽再也不用擔心我的適配問題)。

缺點

  • 圖示有限,很難滿足所有的需求,但是可以結合傳統的切圖方式。

那麼重點來了,怎麼使用呢

2. 把下載後的fontawesome-webfont.ttf放到assets資料夾中(不知道在哪?你可以轉行了!)

3. 編寫string.xml,可以在http://fontawesome.io/cheatsheet/#中檢視圖示對應的字串(往下拉,你就看到了- -!),新增你想要的圖示到string.xml中(你想要新增好的xml?抱歉我沒有!想要哪張自己加唄),如下:

其中name值可以按照自己的命名規則取名

4. 編寫佈局,在TextView中使用該字串,就可以顯示對應的圖示了,如下:

其中android:text引用你要顯示的圖示對應的string資源,android:textColor設定圖示顏色,android:textSize設定圖示大小(跟設定字型大小顏色一樣樣的)。

5. JAVA程式碼中引用

首先找到assets中的fontawesome-webfont.ttf,程式碼如下:

Typeface font = Typeface.createFromAsset(getAssets(), “fontawesome-webfont.ttf”);

然後為需要的TextView設定setTypeface(font)就可以了,程式碼如下:

TextView tvIcon= (TextView) findViewById(R.id.tv_icon);

tvIcon.setTypeface(font);

大功告成,最終的效果圖如下:

相關推薦

Android使用Font Awesome顯示圖示

Android中傳統的顯示圖示的方式 在平常的開發中,如果我們需要在介面上顯示某個小圖示,比如搜尋按鈕,返回按鈕,這時我們需要美工給我們切對應的png圖片,並放進對應的drawable資料夾中,這樣隨著圖示的越來越多,APK體積也會越來越大。 什麼是Fo

程序初體驗:手把手教你寫出第一個程序

輸入框 個人 創建 公測 快速 nsh 成功 too 調用 本文筆者將根據quick start中的範例代碼,帶大家簡單地剖析一下小程序的運行方式,並介紹小程序開發中一些通用的特性,帶著大家一步步寫出自己的小程序。 適用對象:前端初學者,對小程序開發感興趣者 tip

salesforce零基礎學習七十二項目中的零碎知識點總結

gin 不同 grant dmi ima -m ron 角色 com 項目終於告一段落,雖然比較苦逼,不過也學到了好多知識,總結一下,以後當作參考。 一.visualforce標簽中使用html相關的屬性使用 曾經看文檔沒有看得仔細,導致開發的時候走了一些彎路。還好得到

Java故事

時間 abs 十年 caption out 創建 long ger i++ 1 import java.util.Date; //導入包 2 public class Test11 { 3

Objective-C 和 Swift 混編項目的 Tips

markdown nag tomat tac 發現 tps tor ips 名稱 本文主要閑聊一些 Objective-C 和 Swift 混編項目帶來的一些潛規則,希望能幫到對此感到疑惑的朋友。下面我們開始進入主題: 命名 官方 Guide 上只是簡單敘述(Usin

Excel技巧

輸入 類型 設置 需要 工作 位數 數字 字號 ctrl 1、自動標出不及格分數假定需用紅色字體顯示60以下分數,藍色字體顯示60以上分數。按Ctrl+1,設置單元格格式→自定義。例如:類型輸入框中輸入:[藍色][>=60];[紅色][<60] 2、直接輸入字號

微信程序

ase 分鐘 style 自定義 hello move footer 回收 iteration 小程序 WXSS rpx , 僅支持部分 CSS 選擇器 document,window無效 ,用this.route 運行 5分鐘會被微信主動銷毀 內存占用過高回收

wxpython開發一個遊戲

添加 title RR .text all SM add author tdi # _*_ coding: utf-8 _*___author__ = ‘pythonwu‘__date__ = "2018/5/13 21:33"import wximport osclass

Python入門程序

while 條件 循環條件 次數 ima http post nba random 學習了FishC的Python零基礎入門第4節,本次的內容是Python的while循環語句和條件語句。 1. 用一個條件語句實現猜數字的小程序 程序設定一個數字,用戶輸入一個數字,判斷是

node.js整理

eat 當前目錄 分享 rom js對象 mage 隊列 線程 ima node.js是一個基於Chrome v8引擎的JavaScript運行環境 之前我們編寫的JavaScript代碼都是在瀏覽器中運行的,所以我們可以直接在瀏覽器中敲代碼,然後直接運行。現在學習node

ajax遇到的兩個bug

字符 過去 方案 ima 錯誤 復選框 兩個 中項 技術分享 1.公司的一個因子系數配置頁面,可以勾選中多個復選框進行刪除,刪除後保存操作軌跡表。但不知道之前是誰這樣寫的 此挖坑人,對於選中的多個復選框循環調用後臺方法,但是這些請求都請求後臺了,執行完畢的先後順序並沒有保

ELK企業應用-kibana頁面顯示不正常

ELK企業應用-kibana頁面顯示不正常(一) kibana頁面顯示不正常-Request Timeout after 30000ms 1:錯誤頁面 2:問題分析 kibana處理時間過長,應該是日誌過大導致kibana呼叫超時 檢查服務埠 埠存活 檢查

轉錄組差異表達分析實戰

轉錄組差異表達分析小實戰(一)  Posted: 七月 28, 2017  Under: Transcriptomics  By Kai  no Comments 讀文獻獲取資料 文獻名稱:AKAP95 r

進擊的JavaScript

經常有外行的朋友問我JavaScript和Java是不是一家的 JavaScript和Java的關係就像是雷鋒和雷峰塔的關係,除了名字有點像,其他的沒有任何關係,不要再問了,謝謝 好了,抖完機靈,開始說正事了。 一、JavaScript的簡介 JavaScript一種解釋型(解釋型

Python的竅門—— 提示程式的執行

1.環境   Win10 x64 + Python2.7.13 x64 2.目的   在控制檯顯示一個程式執行的狀態,向開發者反饋程式執行正常與否。雖然Python的擴充套件模組tqdm可以動態跟蹤程式的執行情況,網上也推薦了很多庫,這裡自定義一個小函式,比較簡單。 3.

Android Studio開發技巧

我們都知道,Android Studio的功能是非常強大的,也是很智慧的。如果有人告訴你學Android開發要用命令列,你可以告訴他Android Studio是谷歌提供給開發者提升效率的。試想想你腦袋裡有一堆想法,但是開發編碼效率太低導致想法都丟失了或者興趣消失了多可怕對不。好了廢話不多說,這裡介

Android錄製視訊

     近來因專案需要開發一個仿微信錄製小視訊的功能,在camera與mediaRecorder開發中踩到了不少坑,現在記錄下來,做個總結。 1.camera相關     (1)預覽的問題   

Canvas開發前的準備

1、HTML5頁面結構分析 <!DOCTYPE html> <!-- 告訴瀏覽器我們使用的HTML模板為HTML5 --> <html lang="en"> <!-- 網頁頁面的根,其他元素均放在其中,只能有一個 --> <

百度前端技術學院:第三十到第三十三天:我是精明的賣家

var regionGroup = document.getElementById("region-radio-wrapper"); var productGroup = document.getElementById("product-radio-wrapper");

springboot學習筆記---新建springboot專案

springboot學習中會遇到一些細節上的問題,總結一下 idea新建springboot專案 當你新建springboot專案是,有一步驟你費解過沒? 在使用Spring Initializr 建立專案時,這些需要怎麼填,Group(陣列)應該怎麼填,Artifact(標識)應