SyntaxHighlighter

2012年3月10日土曜日

Androidの各Density用に画像を変換するツール

1つの画像を選択して、各Density用に変換・フォルダーに格納するツールを作ってみました。

Image Resize For Android
(Dropboxのパブリックフォルダーに入れましたが、ちゃんとDL出来るのかな…)

CodePlexに移しました。
 https://irfa.codeplex.com/


DLしたZIPを解凍して、exeファイル実行で起動できます。
readme.txtやevolus pencilで作ったモックアップもあるので、御覧ください。
また、実行には「.Net Framework 4.0」が必須となりますので、インストールしていない場合はインストールが必要になります(こちらからダウンロードできます)。
WPF(?)&C#が初めてということもあり大雑把な作りなので、甘いところは多めに見て頂くか、こっそり教えていただけたらと思います。


細かい経緯や使い方などは下記に書いていきますが、端的に申しますと

”毎回同名でサイズの違う画像を用意するのが面倒”
”SDK付属のアイコンを使うにしても、各フォルダーからそれぞれのフォルダーにコピーするのも面倒”

ということで、ひとつの画像を選択することで、必要なサイズの画像と対応するフォルダーを用意するアプリケーションがあったらいいなと思い、いっその事作ってしまえ、と作った次第です。

Androidアプリ開発をする時、ホーム画面やドロワーなどのアイコンやメニュー、タブなどのアイコンを作成するにあたって、いろいろな画面サイズに対応させるために複数のサイズの画像を用意して、それぞれの画面サイズに対応するdrawableフォルダーに追加しないといけません。
drawableに一つの解像度を用意するだけでも良いかもしれませんが、アイコンが綺麗に表示されなかったりもするので、やはり各画面サイズに対応したアイコンを用意したいところです。

ちなみに、各画面サイズに対応させるための方法について、Android Developersの「Supporting Multiple Screens」に記載されていますが、簡単に言うとresフォルダ下に
  • drawable-xhdpi
  • drawable-hdpi
  • drawable-mdpi
  • drawable-ldpi
  • drawable-nodpi
  • drawable-tvdpi
というフォルダを用意してそれぞれのフォルダに「同名」の画像ファイルやXMLファイルを格納し、プログラムやLayoutでそのリソースを指定することで、対応する画面サイズに対応するサイズのアイコンが表示されるという仕組みになっています。

Android SDKに入っている標準アイコンを使用する際も、hdpiのファイルをコピーし、mdpiのファイルをコピーし、hdpiのファイルをコピーし…イメージが違ったら一からコピーしなおし…を繰り返していて、日頃からもっと楽にできたらいいなと思っていた次第です。

で、誰かのお役に立てればと、公開してみようかと思ったので、公開してみました。