1

水平方向と垂直方向に繰り返される画像を含む背景を作成したいと思います。背景全体の上に、背景の半分を覆う白から透明へのグラデーションを適用したいと思います。さて、 styleでこれができるかどうか知りたいです。これは、次の警告が表示されるためです。

"Possible overdraw: Root element paints background @drawable/background with a 
theme that also paints a background (inferred theme is @android:style/Theme)"

背景が 2 回適用されているように見えます。1 回はデフォルトのテーマ (テーマ) で、次に私のレイアウト、ドローアブル要素などで適用されます。

だから、私の質問は次のとおりです。新しいテーマを作成するか、ドローアブルを作成して、新しいテーマによって上書きされるデフォルトのテーマの背景を無効にする方法を教えてください。

みんなありがとう!

4

1 に答える 1

3

すべてのウィンドウの背景を設定すると仮定すると、スタイルは次のように定義されます。

<style name="MyTheme" parent="@android:style/Theme.Holo">
    <item name="android:windowBackground">@drawable/activity_background</item>
</style>

特定のビューに対してそれを行いたい場合は、通常、ドローアブルに設定する必要がある「android:background」属性があります。

その上にグラデーションのあるビットマップを作成するには、次のようなレイヤー リストを使用してドローアブルを定義する必要があります。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <bitmap
        android:dither="true"
        android:src="@drawable/dialog_background_img"
        android:tileMode="repeat" >
    </bitmap>
</item>
<item>
   <shape>
      <gradient
        android:angle="90"
        android:endColor="#66ff0000"
        android:startColor="#5500ff00" />
   </shape>
</item>

</layer-list>
于 2012-04-22T18:58:33.023 に答える