2011年6月1日水曜日

[Android]Widgetをエレガントにする

さて、昨日はWidget(ウィジェット)を配置してみました。
これですね。






















小さい!!(笑)
格好悪いので本来の形にもどしてみましょう。






















本来の形になりました。
ちなみにこれは
画像ファイルの大元をいじっているわけではなくて、dipをいじっているだけですが。
dipってなんぞ?
density-independent pixels の略です。直訳すると「密度に依存しないピクセル」なんだそうです。
このあたりの詳しいことは @yanzm さんという人が綺麗にまとめてくださっているのでどうぞ。

Y.A.M の 雑記帳
Android Dimension 単位

さて、dipの意味はわかりましたでしょうか?
続けます。

Androidの場合は1マスは縦横で74dipx74dipとなりますが、
実際に描画できる範囲は-2dipをひいたものになります。
すなわち、72dipx72dipということになりますね。

前回ではそれを踏まえたうえで xmlフォルダ内のappwidget.xmlの一部(縦横サイズ指定箇所)を

android:minHeight="72dip"
    android:minWidth="72dip"

としていました。
これだと1マス分しか指定していないので先ほどの不幸が訪れるわけです。
では、3マスにするにはどうすればいいのか?

先ほどの74dipという数字を使って算出します。
公式はこちら。

(74 * 描画マス分)- 2

今回は3マスなので

(74dip * 3マス) - 2dip = 220dip

となります。
縦は1マスなのでそのままを使用します。
というわけで

android:minHeight="72dip"
    android:minWidth="220dip"

とします。
これで実行すると























こんなようにいい感じになります。
さらにウィジェットにはサイズを指定することでもっとエレガントになる方法があるのですが、
やっぱり長くなるので気が向いたときに書きますな。

0 件のコメント:

コメントを投稿