29

スタイルで「android:background」パラメーターを使用し、このスタイルにリンクするようにアプリケーションのテーマを設定することで、アプリのすべてのアクティビティの背景を設定しました。

アイテムのリストを含むダイアログの場合、各アイテムが背景のフルサイズになることに気付くまで、すべてうまくいきました。

使用しているパラメータを「android:windowBackground」に変更した後、この場合も正常に動作するようです。

なぜそれが起こるのですか?2つの違いは何ですか?

また、ここで説明するように「android:windowBackground」を@nullに設定すると、「android:background」を使用する場合と同じ速度の向上が得られますか?

4

1 に答える 1

29

android:backgroundはビューコンポーネントの背景色(正確には描画可能)であり、はandroid:windowBackgroundビューが存在するウィンドウ(アクティビティまたはダイアログ)の背景色です。

デフォルトでは、ビューは透明(つまり背景色なし)であるため、視覚的には、下にあるウィンドウから色を取得しているように見えます。

リンクした記事windowBackgroundで、フルスクリーンビューの背景ではなくnullに設定することに言及していることに注目してください。これは、オーバードローを回避するための一般的な手法です。

ただし、一方のビューでもう一方のビューを完全に非表示にしている場合は、同じ原則をビューに適用できます。

例:gist.github.com/floatingmonkey/5474959

于 2013-04-26T15:13:39.377 に答える