2009/12/15

BlackBerry Theme Builderのあやしい挙動

通信事業おぼえがき: ないのでthemeを作ってみた(その2)

の続き。

フォント周りの設定をいろいろ触って、「さぁ、できたぞ!」と喜んでいた...のもつかの間、作成中にはあまり気にしていなかった「左上のプロファイルアイコンをクリックして出てくるメニュー画面が、黒い背景に黒い文字」となっていることに気がつく。

フォントはともかく、ちゃんと「黒い背景に白い文字」で描画するためにはどうしたらいいのか、で試行錯誤を繰り返した結果、どうもthemeの仕様自体がおかしいんじゃないの?という結論に至る。おかしいと思う理由は以下の通り。
  • 当該メニューの「文字」は、Inspector -> Controlsの設定画面にある「List->Primary Font」にあるフォントが使われる。描画時の色については、非選択時はPrimary Fontの色、選択時は「List->Highlight Font」の色が使われる。
  • 当該メニューの「背景」は、Inspector -> Controlsの設定画面にある「Menu->Background」の設定および色が使われる。
  • つまり、文字と背景で違うカテゴリの設定を使っている。
当該部分はMenuだと思うのが自然だと思うので、文字を描画するときにListを使っているということ自体がおかしい、はず。

ちょっと考えればすぐに「ListとMenuの両方を同じ背景色、同じ文字色にする」という後ろ向きの解決が出てくるのだけど、そうすると「メールの一覧(これはList)の色を、デフォルトの白から黒に変更する」か、「メニュー(これはMenu)の色を、デフォルトの黒から白に変更する」のどちらか(これに付随して文字の色も変更)、をやる羽目になって、どちらにしても嬉しくない。


「いったいどうしたらいいの?」と思う一方、そもそもOSに最初からインストールされているZenテーマではこんな問題が発生していないわけなので「きっと解決策があるはず」と思い、新規でテーマを作成し、まったく変更しない物を使ってみると...ちゃんとプロファイルのメニューは黒背景に白文字で描画されている。つまり、何も触らなければ問題はなく、私が何かを変更したから上記のような問題が起きている、というのが確定。

何を触るとまずいのか、でさらに試行錯誤をした結果...

  Inspector -> List の Primary Font、の設定を絶対に触らない

ようにすれば大丈夫、ということに気がつく。ちなみにこの項目のデフォルトの設定は「BBMillbankTall の 30pt、描画色は」。Listの項目に(白背景がデフォルトだから)黒の文字を書く、という設定は間違っていないんだけど、上記の場合に限り、プロファイルのメニューを描画する時だけの文字、になるという不思議。とにかくデフォルトのまま触らなければ大丈夫なのは間違いないみたい。うっかり変更してしまった場合は、Primary Font、と書かれている部分を左クリックして Reset to Default を選択するとデフォルトの設定に戻せて一安心。

散々悩んで、どうにもbugっぽい挙動にしか思えないんだけど、とりあえず希望するthemeに(こんどこそちゃんと)仕上がったので、ひとまず気にしない、ということに。


おまけ:BlackBerry用themeを作る時は、(月並みだけど)simulatorでの動作確認が大事。上記問題も、simulatorを活用してれば最初からわかった問題だし、問題を解決するために細かい調整をするときにもsimulator上で確認できてとっても楽。ただし、simulatorはよくできているものの実機と完璧に同じではない(特にフォントやリストの配置等で、pixel単位の調整をしようとすると裏切られる)ので、simulator「だけ」で動作確認を終わらせてはいけない。

0 件のコメント: