'windowBackground' 沒法找到問題

主題設置

android中能夠經過對activity主題進行設置,能夠獲得一些特殊的效果,如背景透明、無標題、全屏等,android自己提供了一些主題供開發者選擇,具體方法即在manifest文件中相應的<activity>標籤下添加android:theme="@android :style/..."便可。,若是要自定義主題,須要在res/values目錄下添加style.xml文件,在其中定義所需的屬性。java

遇到的問題:android

應用中須要將一個activity的背景設置爲半透明效果,但系統自己提供的選擇只有全透明效果,所以須要自定義。web

定義activity背景色 <item name="windowBackground">#99cccccc</item>,這樣寫會報出兩種錯誤,api

(1) No resource found that matches the given name: attr 'windowBackground',即指定的name找不到,這條有時候會經過,但背景不會改變,是漆黑的一片。spa

(2) Color types not allowed (at 'android:windowBackground' with value '#99cccccc'),即對color不能這麼寫.net

解決辦法:code

<item name="android:windowBackground">@color/transparent_background</item>orm

即name裏要添加android:,color要專門在colors.xml文件中具體定義xml

分析:ip

 <item name="windowBackground">這種寫法是在仿照系統api中的style寫的,在目錄\android-sdk\platforms\android-8\data\res\values下的themes.xml文件是系統定義的各類主題屬性,例如

  1. <!-- 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">

相關文章
相關標籤/搜索