Blog / 開発者ブログ

アプリのアイコン選びが少し楽になる方法

2015.6.8

自作アプリやちょっとしたサンプル作る時にアイコン選びにけっこう苦労した経験、皆さんにも有ると思います。有料アイコン買うのは気が引ける…でも無料でライセンスフリー探すのも毎回しんどい…と。
そこでオススメなのがGoogleの”Material design icons”です。

 

 

このアイコンは昨年Googleがマテリアルデザインに合わせる形でリリースしたアイコンで、マテリアルデザインのアイコンとして利用できるのはもちろん種類・クオリティ・サイズもかなり豊富に揃っています。ライセンスはCC BY 4.0でライセンス表示さえすれば改変・商用利用も自由です(ただしアイコン自体の販売はNG)

 

ただこのアイコン、750種類×3カラー×4サイズ×5解像度分あるので、贅沢な悩みかもしれませんが目的のアイコンを探してから導入するまでそこそこ苦労したりします。そこでまたまたオススメなのが”Android Material Design Icon Generator Plugin”というAndroidStudio用のプラグインです。

 

Android Material Design Icon Generator Plugin

 

導入は簡単で、プラグインからインストールして
 スクリーンショット 2015-06-08 9.55.54

 

drawableフォルダの上でNew→Material Design Iconと選ぶだけです。
スクリーンショット 2015-06-08 10.55.01

 

UI上でアイコンをプレビューしてくれる上に、アイコンカラーも通常だと白黒グレーの3つしかないのですが、このプラグインでは全マテリアルカラーの中から選択できます(試しにlimeA400で作成)。
スクリーンショット 2015-06-08 10.57.50

 

追加したい解像度もチェックボックスで選べるのでリソース毎にフォルダからフォルダへコピペする作業も不要です。OKを押すと↓な感じで簡単にアイコンを追加できます。
スクリーンショット 2015-06-08 11.13.47

 

もしアイコン選びで困ってる方は試してみると良いかもしれません。

 

謎のフォルダ

そういえば今回の記事投稿用に最新のMaterial Design Iconをダウンロードしたら“drawable-anydpi-v21”なるものが増えてました。v1.0.0の頃にはなかったフォルダです。v21専用でany?しかも拡張子がxml。なんだそれはと適当に中身を見てみると…

・ic_party_mode_black_24dp.xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M20,4h-3.17L15,2H9L7.17,4H4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V6c0,-1.1 -0.9,-2 -2,-2zm-8,3c1.63,0 3.06,0.79 3.98,2H12c-1.66,0 -3,1.34 -3,3 0,0.35 0.07,0.69 0.18,1H7.1c-0.06,-0.32 -0.1,-0.66 -0.1,-1 0,-2.76 2.24,-5 5,-5zm0,10c-1.63,0 -3.06,-0.79 -3.98,-2H12c1.66,0 3,-1.34 3,-3 0,-0.35 -0.07,-0.69 -0.18,-1h2.08c0.07,0.32 0.1,0.66 0.1,1 0,2.76 -2.24,5 -5,5z"/>
</vector>

 

LollipopからサポートされたVectorDrawableでした。ベクター形式は軽量且つ1ファイルで複数解像度をカバーできる素晴らしいリソースなのですが、現状Lollipop以降のOSでしか利用できないのであまり陽の目を浴びていません。(一応VectorDrawableのバックポートSVGを直で扱えるオープンソースを使えば導入はできる)

 

しかしそんなVectorDrawableにも朗報があります!Google I/O2015のキーノートで下記のような発表があったんですね。

 

“Android L introduced support for vector drawablesWith the new Android Studio 1.3 plus changes to the Android Gradle plugin, you can now let the build system generate raster images from your SVGs or vector drawables for different densities.”

Screen Shot 2015-05-30 at 10.24.57-nwuvL0kS8W

 

この機能は現在の1.3Previewでは試せないようなので詳細は不明ですが、どうやらベクターイメージ(VectorDrawable?SVG?)をdrawableリソースに入れておけばビルド時に解像度別にpng画像を生成してくれるようになるというものらしいです。もし将来的にこの機能がリリースされたらアイコンのリソース準備は更に楽になりそうですね。