[TIPS]IS01/LYNXのウィジェットのサイズ

公開日: 開発TIPS | , , ,

IS01/LYNXのappWidgetのサイズは、SHARP独自UIのおかげでandroid標準とは異なります。 IS01発売当時にはちらほらとウィジェットサイズの情報を見かけては「ほー、なるほど」と言う程度で見ていたのですが、いざ必要になって探すとなかなか見つからないものですねぇ・・・
当初、時間が経てば、もっと端末についての情報が色々沢山出てくるだろうと予想していたのですが・・・

と言うわけで、メモ

 (短くするつもりだったのですが、長くなったので折りたたみ)

情報の出所は、アンドロイダーさんです。(アンドロイダーさんに感謝!!)
WEBページを探したのですが見つからないので、Ustreamに登録されている SHARP Androidアプリ開発テクニカルセッション 07/26/10 01:59AM の 1:16:30辺りを参照しました。

 

<appwidget-provider>タグで指定するウィジェットの1セルあたりの最小サイズは

android:minWidth="74dp"
android:minHeight="70dp"

実際のレイアウトで隙間無く使用できるサイズは

  横(width) 縦(height)
LYNX 78dip(118px) 70dip(106px)
IS01 74dip(112px) 74dip(112px)

とのこと

 

実際にIS01で試してみました

IS01です。LYNXは実機を持って無いのでテスト出来ません(誰かお願いします><)
テスト方法は以下の様な1セル分(112px × 112px)の画像を表示するウィジェットを作り、いくつか並べて隙間や拡大縮小状況を確認すると言うもの。

widgetテスト用画像

<appwidget-provider>タグのファイルはこんな感じ

<?xml version="1.0" encoding="utf-8"?><br />
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"<br />
    android:minWidth="74dp"<br />
    android:minHeight="70dp"<br />
    android:updatePeriodMillis="0"<br />
    android:initialLayout="@layout/appwidget_provider" /><br />

 

レイアウトの大きさを74dpで指定した時

dp指定
74ピクセルで表示されました。1.5倍されませんでした。

<?xml version="1.0" encoding="utf-8"?><br />
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />
    android:layout_width="74dp"<br />
    android:layout_height="74dp"<br />
    android:background="@drawable/test" /><br />

 

レイアウトの大きさを112pxで指定した時

112px指定時
予想通り、隙間無く表示されている。

<?xml version="1.0" encoding="utf-8"?><br />
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />
    android:layout_width="112px"<br />
    android:layout_height="112px"<br />
    android:background="@drawable/test" /><br />

 

レイアウトの大きさをfill_parentで指定した時

fill_parentで指定した時
これも、px指定と同じく隙間無く表示されている。

<?xml version="1.0" encoding="utf-8"?><br />
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />
    android:layout_width="fill_parent"<br />
    android:layout_height="fill_parent"<br />
    android:background="@drawable/test" /><br />

 

android:minWidth="74dp"の問題

先に紹介した通り、IS01/LYNXでは android:minWidth="74dp" が推奨されています。
が、これはandroid標準の推奨値 72dp(セル数×74dp-2dp)を超えている訳で、これを標準のエミュレータにウィジェットを貼り付けてみると面白いことが起こりました。

エミュ横画面

エミュ縦画面

上の画像は8個のウィジェットを並べてあるものの横画面・縦画面です。
先の例の「レイアウトの大きさをfill_parentで指定した時」と同じウィジェットです。
そう、全部同じ設定のウィジェットなのですよ!

同じ設定にもかかわらず、上の4つが横に2セル割り当てられているのに対して、下の4つは1セルの割り当てです。不思議です。

実は、上の4つはエミュの画面を横にした状態で追加したウィジェットで、下の4つは画面を縦にした状態で追加したウィジェットです。 どうやら、画面の縦状態と横状態では、ウィジェットのセル割り当ての大きさが違っているようです。(Androidのソースを追いかければ何が起きてるのかわかるのかな?僕にはそんなスキル有りませんが)

 

結論?

LYNXの実機が無いので、何とも言えないのですが、Android標準・IS01・LYNXそれぞれに対応する為には、

<appwidget-provider>タグのサイズ指定は、minWidthはandroid標準の推奨値の方が小さいのでそちらに合わせて、minHeightはLYNXが一番小さいのでLYNXに合わせる。

android:minWidth="72dp"
android:minHeight="70dp"

レイアウトについては、<appwidget-provider>タグのサイズに合わせるか、fill_parentで縮尺はデバイスに任せてしまう。又は機種を判定して、それぞれ別々のレイアウトを割り当てる。

と言うのが、良いのかなぁ・・・と思いました。

 

愚痴

こう言う情報は、本来なら公式である SH Developers Square のようなサイトでSHARPさんが公開されるべきなんじゃないかと思います。
が、現在その公式サイトは更新は殆ど行われず、フォーラムも閑古鳥が鳴いている状態。 先のust動画の中の質疑応答の場面で参加者の方が「サイトの情報が少なすぎる」と突っ込まれていますが、まったく改善されていないのが現状です。 SHARPさん、残念です。

 

関連記事

no image

Android 3.2のズーム機能について

Android 3.2 から、大画面(xlarge)に対応していないアプリの画面を拡大して表示する機

記事を読む

no image

[TIPS]アクティビティの見た目をダイアログにする方法

TIPSと言う名のメモ書き AndroidManifest.xml ファイルの <activ

記事を読む

no image

[TIPS]リストビューの飛び出すハンドル

TIPSと言う名のメモ書き リストピューの項目が多い時に、よく見るアレ。 普通のスクロールバ

記事を読む

no image

[TIPS] カレンダーアプリの起動方法

TIPSと言う名のメモ書き 基本的に、自作のアプリから他のアプリを起動するにはインテントを利用しま

記事を読む

no image

[TIPS]端末に設定されている日付フォーマットの取得

android.text.format.DateFormat クラスの getDateFormat(

記事を読む

no image

[TIPS]Bluetooth SPPのUUID

Bluetoothの接続には、UUIDを指定しないといけないらしい。 その詳細は良く分かりませんが

記事を読む

no image

[TIPS]String型とbyte配列の相互変換

普通のアプリ作成では、あまり使うことは無いかなと思いますが、外部と通信するアプリを作る場合に時々使う

記事を読む

no image

[TIPS]USBホストシールド使用時に使えるピン[ADK]

SparkFun USB Host Shieldは、Arduinoの7~13ピンを使用してコントロ

記事を読む

no image

[TIPS]文字にドロップシャドウを付ける方法

実は TextView には影を付ける為のパラメーターが有るので、簡単にドロップシャドウが付けられま

記事を読む

no image

[TIPS]IS01/LYNXを機種判定

前回 IS01/LYNXのウィジェットのサイズ で、IS01/LYNXのウィジェットは機種判定してレ

記事を読む

Arduinoで温湿度データロガー
Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを

Arduinoで温湿度計
Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前

SDカード・マイクロSDカード
ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduin

秋月電子 リアルタイムクロック(RTC)モジュール
秋月のリアルタイムクロック(RTC)モジュール

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを

秋月電子 キャラクタLCD
秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、

PAGE TOP ↑