web-dev-qa-db-ja.com

アクティビティスタイルのwindowBackgroundとbackgroundの違いは何ですか?

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

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

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

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

また、「Android:windowBackground」を@nullに ここに記述 と設定すると、「Android:background」を使用する場合と同じ速度向上が得られますか?

24

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

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

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

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

例: Gist.github.com/floatingmonkey/5474959

24
numan salati