Androidアプリにはネットワークとの通信中やその他の時間のかかる処理を実行する際に処理中を表す画像を表示するのがセオリーである。これをProgressBarと読んでいるが、単に円が回転するものとバータイプの者がある。で、今回は回転型ProgressBarについて。
Androidではこの回転型ProgressBarを背景色に合わせて2種類デフォルトで用意してくれている。なぜ2種類かというと暗いテーマのときは明るい回転画像を、明るいテーマの時には暗い回転画像を使わないと回転が見えないからである。で、開発者はこれをスタイルの切り替えで対応するのである。
上記はLayoutファイルの断片だが、ProgressBarタグのstyle属性を見てもらうと2つ目の方には「Inverse」がついている。これが明るい背景(テーマ)用のものだ。
実はこれ以外にもう一つ対応方法がある。それはApplicationのテーマを設定する方法だ。
Blackが黒背景、Lightが白系の明るい背景用だ。Androidが書くWidget用にスタイルを切り替えてくれるので、ProgressBarについてもよろしくやってくれる。
で、何が実際に表示される画像がこちら
spinner_black_48.pngと
しかし、AndroidのVer2.3以降でこれらの問題は実は気にしなく良くなっている。
spinner_black_48.pngと
spinner_white_48.pngだ。違いはナッシング。
最初からこうしといておくれよGoogleさん。ProgressBarの画像問題をv2.3でテストしてたからスタイル変更が全然適用されなくて無駄に時間を使ったじゃないかorz。