読者です 読者をやめる 読者になる 読者になる

2hours

1日2時間でなにができるかな

ウィジェットに関する困ったこと

Android とけい


Androidの開発を始めて最初に適当に作り始めたのが「とけい」アプリなのですが・・・。
ただの時計表示ウィジェットだから簡単だべ?と思ったのが大きな間違いだったのかもしれない。

ウィジェットに使えるViewがかなり限定されている

  • FrameLayout
  • LinearLayout
  • RelativeLayout
  • AnalogClock
  • Button
  • Chronometer
  • ImageButton
  • ImageView
  • ProgressBar
  • TextView


使えるのはこれだけらしい・・・。
独自カスタムViewが使えれば問題ないのだけど、何をやっても上記以外のViewは受けつけてくれなかった。


AppWidgetがすぐ死ぬ

他の方の時計ウィジェットもよく参考に見るのですが、やっぱりコメントに「止まる」「遅れる」の文字が。
元々最小30分毎の更新を行うように出来ているので、そんなもんと言われればしょうがない気もするけど・・・。
ユーザーさんからすれば時計が止まるとかアプリとして問題外なわけで。


OSが1.6になってから永遠に着いて回っている問題なのですが、解決策は分かっていません。
止まりにくい物にはなってきているとは思いますが・・・。


テキストに文字列と色しか指定出来ない

とけいアプリによく「フォント設定」や「文字サイズ設定」を追加して欲しいという声があります。
が、Androidウィジェットの仕様上、色々と壁があって簡単には実装出来ませんorz

フォント指定

前述の通り、プログラムからテキストに対して指定出来るのが「表示する文字列」と「文字色」のみ。
(setTextColorとsetTextViewText)


なので、文字に色/フォント/サイズなどを指定して、Bitmapとして書き出せば問題は解決出来ます。
が、問題点がいくつか。
・やっぱりBitmap生成やらを1分毎にやったりすると当然重い。
・フォントファイルをアプリに乗っけるのでサイズが大きくなる。
・今までテキストとして文字を書き出してたので、処理を大幅に変える必要がある。


じゃあ最初から文字を画像として用意して、それを表示すればいいんじゃないか?と思ったのですが、
そうすると今度は「フォントの種類×文字色の種類×0〜9の数字などの文字種類」の数だけ画像を用意しなければならない。
画像作るの苦手だしなぁ・・・。



ということで、フォント指定については諦め気味。
一度Bitmapで表示するサンプルアプリを作って配ってみようかなとも思っています。
何人かのユーザーさんに使ってみてもらって、実用に耐えられるようであれば本番も変えようかと。