Android - 重复背景并应用白色到透明渐变

时间:2012-04-22 18:43:51

标签: android background gradient repeat

我想创建一个背景,其中包含一个水平和垂直重复的图像。在整个背景之上,我想应用从白色到透明的渐变,覆盖背景的一半。 现在,我想知道我是否可以用风格来做到这一点。这是因为我得到了这个警告:

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

看起来背景应用了两次,一次是默认主题(主题),然后是我的布局,可绘制元素或其他。

所以,我的问题是:我怎么能通过创建一个新主题或创建一个drawable来禁用默认主题背景,这个主题背景会被新主题透支?

感谢大家!

1 个答案:

答案 0 :(得分:3)

假设您要为所有窗口设置背景,则样式定义如下:

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

如果您想为特定视图执行此操作,通常会有一个“android:background”属性必须设置为您的drawable。

要在其上面放置一个带有渐变的位图,必须使用如下图层列表定义您的drawable:

<?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>