ボクココ

個人開発に関するテックブログ

Android で Font Awesome を使うのがなかなかいい感じ

Android でアイコン作るときは、まぁ普通は Action Bar Icon Pack とかをよく使うと思う。自分もそれを好んで利用していた。

ただ、これには以下のような欠点がある。

  • 使う画像を利用する度にコピーするがだるい
  • 要領がどんどん大きくなる
  • 種類が少ない

さて、それらを解決してくれるのが Font Awesome を利用したアイコン生成方法だ。

設定方法

まずは Font Awesomeからアイコンパックをダウンロード。

その中の fonts -> fontawesome-webfont.ttf を Android プロジェクトの assets ディレクトリに保存。なければ java とかと同じ階層に作る。

使いたいアイコンを チートシート から探す。

strings.xml に以下を追記

    <string name="icon_fb">&#xf082;</string>

layout はこんな感じ

                <TextView
                    android:id="@+id/fb_icon"
                    android:text="@string/icon_fb"
                    android:textSize="@dimen/text_large"
                    android:textColor="@color/com_facebook_blue"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />

アクティビティ内に以下を記述

        Typeface font = Typeface.createFromAsset(getAssets(), "fontawesome-webfont.ttf");
        ((TextView) findViewById(R.id.fb_icon)).setTypeface(font);

すると、アイコンができる。

Font Awesome にすること

メリットは以下の通り。

  • 種類が多い
  • 容量節約
  • drawable へのコピペは不要
  • 色が自由自在
  • 大きさもdimens.xmlに書けば画面サイズ毎に大きさを変えられる

色変えられるのはかなりでかい!Actionbar icons pack じゃできなかった。

デメリットはこんなのかな

  • 毎回チートシート見てstringsに記入しないといけない
  • activityにコード書かないといけない

所感

アイコンのあるアプリは見た目がいいし、直感的にわかりやすし是非導入したい所。最初からFont Awesomeを利用したAndroidプロジェクトにすることをおすすめします。

自分の場合は一部Actionbar icons pack、一部はFont Awesome となってしまった。。Font Awesomeで統一しようかな〜。