IS01のウィジェットサイズ

On 2010年8月26日, in Android開発, by cliph

やれやれ。
結構苦戦したぜ。

今まで自分が横画面端末に全く興味が無かったので、
横画面の場合のウィジェットサイズに気を配って無かった。

今回IS01対応で色々調べて勉強になった。

結論としては、
縦画面widgetと横画面widgetは縦横比が異なる為、
別々のレイアウトのwidgetを定義しないとダメ。

縦横何れの場合も、
AppWidgetProviderInfoのXMLファイルに設定する、
minWidthとminHeightは共通で、

(74 × サイズ)‐2 dip

で設定する。
例えば、4×1widgetなら、
minWidth=74×4 -1=294dip
minHeight=74-2=72dip
とすればよい。

実際のXMLファイルはこんな感じ

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:initialLayout="@layout/main4" 
   android:minHeight="72dip" 
   android:minWidth="294dip"/>

で、ここからが理解するのに時間がかかったんですが、
上記の294dip×72dipのサイズで実際にwidgetを作るとやたらと小さいwidgetになっちゃいます。

なぜかと言うと、上記のサイズはあくまで最小サイズで、
実際のwidgetのサイズはもっと大きくできるからです。

かつ、この実際のサイズは縦画面と横画面で事なります。
ここが縦、横それぞれ対応しなくてはいけない原因です。

クリフがここ数日躓いていたのは、
上記XMLで指定するサイズと、widgetのレイアウトのサイズを一致させないと行けないと思っていたから。
だけど、そんなことは無くて、上記XMLのサイズは縦横共通で、実際のレイアウトのサイズだけ見直せば良かった。

と言う事で、
明日からようやくCliphWeather横版のデザインに入れそうです。

ああ、勉強になったな~

コメントを残す

メールアドレスが公開されることはありません。