您的位置:首页 > 其它

'windowBackground' 无法找到问题

2016-05-05 17:26 211 查看

主题设置

android中可以通过对activity主题进行设置,可以得到一些特殊的效果,如背景透明、无标题、全屏等,android本身提供了一些主题供开发者选择,具体方法即在manifest文件中相应的<activity>标签下添加android:theme="@android :style/..."即可。,如果要自定义主题,需要在res/values目录下添加style.xml文件,在其中定义所需的属性。
遇到的问题:
应用中需要将一个activity的背景设置为半透明效果,但系统本身提供的选择只有全透明效果,因此需要自定义。
定义activity背景色 <item name="windowBackground">#99cccccc</item>,这样写会报出两种错误,
(1) No resource found that matches the given name: attr 'windowBackground',即指定的name找不到,这条有时候会通过,但背景不会改变,是漆黑的一片。
(2) Color types not allowed (at 'android:windowBackground' with value '#99cccccc'),即对color不能这么写
解决办法:
<item name="android:windowBackground">@color/transparent_background</item>
即name里要添加android:,color要专门在colors.xml文件中具体定义
分析:
<item name="windowBackground">这种写法是在仿照系统api中的style写的,在目录\android-sdk\platforms\android-8\data\res\values下的themes.xml文件是系统定义的各种主题属性,例如

<!-- Window attributes -->
<item name="windowBackground">@android:drawable/screen_background_dark</item>
<item name="windowFrame">@null</item>
<item name="windowNoTitle">false</item>
<item name="windowFullscreen">false</item>
<item name="windowIsFloating">false</item>
<item name="windowContentOverlay">@android:drawable/title_bar_shadow</item>
<item name="windowShowWallpaper">false</item>
<item name="windowTitleStyle">@android:style/WindowTitle</item>
<item name="windowTitleSize">25dip</item>
<item name="windowTitleBackgroundStyle">@android:style/WindowTitleBackground</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Activity</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustUnspecified</item>


不知道为什么系统文件就没有问题。。。总之自定义的话对这些属性值的name需添加android:,形如<item name="android:windowBackground">
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: