2010年10月29日

[Android] XMLを使ったビットマップ

AndroidはXMLで画像を作ることができます。
どんなものがあるのか調べるためにひと通り験してみることにしました。
ちなみにこのことが書かれているのは以下のページです。

http://developer.android.com/intl/ja/guide/topics/resources/drawable-resource.html

xml_bitmap.png

■Bitmap File
 画像を繰り返し並べたり、反転したりできるようです。
 小さな画像を用意して、「線」として使うときなどに使えるかな?

■Nine-Patch File
 XMLで指定する9パッチはよくわからなかったのでパス。

■Layer List
 複数枚の画像を重ねた画像を作成できるようです。
 画象をパーツで用意して、1つの画象を作るときに使いそうですね。

■State List
 いわゆるセレクタ(selector)というやつですね。
 状態に応じて画象を切替えるボタンなんかに使いますね。
 便利です。

■Level List
 使ったことがなかったのですが、JavaからsetLevel()というメソッドでレベルを指定したときに、そのレベルに応じて変化する画象を作ることができます。
 電池残量とかの画象はこれで作られてるのかなぁ?

■Transition Drawable
 ちゃんと理解してないですが、徐々に変化する画象を作れます。
 アニメーションとは違うのかな?よくらわかりません。

■Clip Drawable
 これまたsetLevel()でレベルを変えると、それに応じて変化する画象を作ります。
 Level Listでは画象自体が切り替わりましたが、これはレベルに応じて切り取られます。
 進捗を示すプログレスバーに使えそうです。

■Scale Drawable
 これはよくわかりませんでした。
 想像では元の画象から拡大・縮小された画象をつくることができる、と思ったのですが、いろいろ試してみたものの表示させることが出来ませんでした。
 ということで、これに関してはコメントアウトしてあります。
 おわかりになる方がいましたら教えてくださいまし。

 コメントをいただいて、ようやくわかりました。
 やはり拡大・縮小画像をつくるためのものでした。
 ただ、このDrawableもレベルでサイズが変化するもので、初期値がゼロだったため表示できなかったようです。
 (他にもレベルを使ったものがあるんだから気づけよ、自分、という気がしないでもないですが…)
 やっとむさん、ありがとうございました。

■Shape Drawable
 純粋にXMLで画象を書くことができるようです。SVGみたいにいろいろなことは出来なさそうですが。
 シンプルなアプリのパーツはこれだけでも結構かっこよく作れそうな予感がします。

■Animation Drawable
 上のURLの中には含まれてないのですが、AnimationDrawableというものもありました。
 start()で指定した画象のパラパラ漫画風に再生してくれます。


本当はScale Bitmapが表示できてから記事にしようと思っていたのですが、あまりにもわからなすぎてもういいやと載せてしまいました。
ひと通り試してみたサンプルを置いておきます。
BitmapSample.zip


コメントいただいたおかげで、XMLを使った画像については何とかひと通り試すことができました。
このXMLで作れる画像は、絵が描けないプログラマさんの味方なんじゃないかな、と感じています。
機会があれば積極的に使っていきたいと思います。
修正して完全版となったサンプルを置いておきます。
BitmapSample.2.zip
タグ:android
posted by t2low at 02:05| Android