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文件是系統定義的各類主題屬性,例如
<!-- 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">