以前作ったAppWidgetのEjectSDは、アイコンを作り直そう。
そう思ってあれこれやっている。
まあ、デザインどうのこうのは、もうあきらめよう。センスの問題だ。
今気にしているのは、アイコンのサイズ。
これは技術でカバーできる話だ。
なにかというと、A500にAppWidgetを表示させた際、アイコンが小さくなってしまうのだ。
しかも、寄ってる。。。
これは確かに、イマイチといわれても仕方あるまい。
EjectSDは、おおきさが1x1だ。
本によると、1x1のAppWidgetは72x72[dp]とのこと。
dpは「density-independent pixel」ということで、とにかく160dpiの場合に1dp = 1pxという関係になるとのこと。
A500は、画面は広いけど160dpiだ。
リソースなら、res/drawable-mdpiを使うのかな。
そう思って、ldpi、mdpi、hdpiのためにそれぞれ36x36、48x48、72x72のアイコンを用意した。
が・・・アイコンは小さい。
じゃあ、とldpi、mdpi、hdpiをなくして、drawableに72x72pxのアイコンを作った。
が・・・これも小さい。
なんじゃこりゃ?
アイコンをどうやって表示させているかというと、ImageViewにsetImageViewResource()を使って貼り付けているだけだ。
ImageViewにサイズ指定なんてしてないのになあ、と思うと、ガイドラインがあった。
縦置き(portrait)と横置き(landscape)で違うのか・・・。
デザインについては、知っておかないといかんことがいろいろあるんだなぁ。
それはともかく、今は縦画面で確認しているので、AppWidgetとしては80x100pxだ。
作ったアイコンは、72x72だからこれよりも小さい。
そして小さいまま表示されるのだから、アイコンの拡大なんかはしないみたいだ。
では、大きいアイコンだったらどうなる?
512x512pxのアイコンにしてみると、AppWidget1つ分の枠にみっしり入って表示された。
横画面にしても、みっしりだ。
ということは、縮小はしてくれるらしい。
ImageViewの指定がwrap_contentだからか?
fill_parentにして72x72アイコンに戻すと、みっしり表示された。
なーんだ、そういうことか。
そんなわけで、AppWidgetにアイコンを表示させるときは、wrap_contentにしてアイコンを大きめに作って縮小してもらうか、fill_parentにしておくのがよさそうだ。
デザインのどこをいじるとどうなるかわかってないので、時間がかかって仕方がない。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。