imagesizes
androidは、いろんなデバイスで動くように設計されていて、androidのアプリで画像を使う場合、それぞれのデバイスの解像度に応じて画像を用意する必要があります。最初、よくわかんなかったんですけど、たぶんこんな感じで作れば、うまくいくはず・・・。まぁ、面倒くせぇ・・・。

そのままのサイズの画像は、mdpi

パソコンで見たまんまの1px=1dpiとなるのがたぶんmdpiです!このpxサイズをそのままlayoutのdpやらに使用します。たとえば、アプリに100dp*100dpの画像を置きたい場合は、まずはパソコンで見たまんまの100px*100pxの画像を用意してやります。これがmdpiでの画像サイズです。


 

mdpiをベースに他のサイズを作る

で、mdpiをベースに他の画像サイズを計算してみます
  • hdpiは、mdpiの1.5倍
  • xdpiは、mdpiの2倍
  • xxdpiは、mdpiの3倍
たとえば、mdpiでヨコ100pxタテ100pxの画像を用意したとしたら、hdpiは150px*150pxとなり、xdpiは、200dp*200dpとなります。ちなみにldpiは、mdpiの0.75倍なんですけど、ldpiの低解像度のデバイスってあんのか・・・。

あと、この考え方が解ったならば、逆にも計算できるようになる・・はず。デザインするときに大き目のxdpiなんかでデザインして、それをmdpiに戻す場合は、xdpiの0.75倍がhdpiで、0.5倍がmdpi・・・・・。


mdpiの画像サイズは偶数にする?

mdpiの画像サイズを偶数にしとけば、hdpiで小数点以下がでないのでいいのかもしれません・・・・。まぁ、ぶっちゃげ、小数点以下の値なんて気にする必要もないような