解決Android開發中簡單圖標的困擾,FontIcon在Android中的使用示例

因爲實習的公司還有本身的一個項目都對圖標有着各類各樣的需求,除了個性話的圖標之外,咱們的項目每每還須要一些簡單的圖標來顯得不是那麼單調。可是傳統的引用Icon操做起來過於麻煩,須要考慮圖標過多直接引用的內存過大問題,圖標的尺寸和顏色每每也不可以自定義,爲此,咱們借鑑Web前端的經驗,考慮使用字體圖標;前端

源代碼在文章最後有下載連接,不用分就可下載。android

什麼是字體圖標呢?git

字體相信你們都懂,Windows下的ttf文件就是咱們最多見的字體文件,經過應用字體圖標,咱們在text中輸出特定的字符時字體文件就會將其解析成特定的圖標。github

在這裏我以fontAwesome字體圖標爲例作一個示例,固然,能用的字體圖標也不止此一種,你們能夠用這種方法使用本身須要的字體圖標庫:web

一,咱們首先在Github上的FontAwesome項目下下載fontawesome-webfont.ttf文件,這是咱們後面要用的字體文件:ide

項目地址:https://github.com/FortAwesome/Font-Awesome字體

咱們能夠在FontAwesome的網站上查看其包含的圖標:網站

網站地址:http://fortawesome.github.io/Font-Awesome/this

可用的一些圖標

將fontawesome-webfont.ttf文件複製到項目的assets目錄中一邊使用.net

輸入圖片說明

二,爲了讓圖標不單單只是在TextView中使用,咱們但願可以將FontIcon變成Drawable類型的對象,這樣咱們就能夠更加靈活的使用了;

將FontIcon轉成Drawable有一個開源項目支持 項目地址:https://github.com/shamanland/fonticon

使用方法: 首先在程序的入口(我這個程序是在Application類中)初始化:

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FontIconTypefaceHolder.init(getAssets(), "fontawesome-webfont.ttf");
    }
}

完成以後咱們定義一個名爲font-icon的XML文件引用字符圖標:

<font-icon
    xmlns:android="http://schemas.android.com/apk/res-auto"
    android:text="@string/fa_star"
    android:textSize="64dp"
    android:textColor="#0099cc"
    />

這裏咱們用了Font Awesome中的Star圖標,圖標對應的String在項目源碼的String source文件中

在MainActivity中解析FontIcon成Drawable類型,而後將其應用到一個ImageView上

ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Drawable icon = FontIconDrawable.inflate(this, R.xml.font_icon);
        imageView=(ImageView)findViewById(R.id.image);
        imageView.setImageDrawable(icon);
    }

至此,一個簡單的FontIcon引用就完成了,你能夠將其應用到任何可使用Drawable的控件中,也能夠自由改變其尺寸和顏色

示例的效果:

輸入圖片說明

在項目中的效果:

輸入圖片說明

內存使用狀況:

輸入圖片說明

源代碼下載地址: http://download.csdn.net/detail/u012885690/9032863

相關文章
相關標籤/搜索