我想创建一个背景,其中包含一个水平和垂直重复的图像。在整个背景之上,我想应用从白色到透明的渐变,覆盖背景的一半。 现在,我想知道我是否可以用风格来做到这一点。这是因为我得到了这个警告:
"Possible overdraw: Root element paints background @drawable/background with a
theme that also paints a background (inferred theme is @android:style/Theme)"
看起来背景应用了两次,一次是默认主题(主题),然后是我的布局,可绘制元素或其他。
所以,我的问题是:我怎么能通过创建一个新主题或创建一个drawable来禁用默认主题背景,这个主题背景会被新主题透支?
感谢大家!
答案 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>