Activity背景的透明度效果
方法一:通过系统自带的主题 Theme.Translucent
@android:style/Theme.Translucent
@android:style/Theme.Translucent.NoTitleBar
@android:style/Theme.Translucent.NoTitleBar.Fullscreen
只需要在Manifest中需要透明的Activity内设置theme为以上任意一个就可以了
<activity
android:name="com.xxx.xxx"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
方法二:自定义style
就像自定义Dialog的style一样,在res-values-color.xml中添加透明颜色值:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<color name="transparent_bg">#5000000</color>
</resources>
tip:注意:color.xml的#5000000前两位是透明的效果参数从00–99(透明–不怎么透明),后6位是颜色的设置 纯透明可以简写:#000
在res-values-styles.xml中添加如下:
<style name="myTransparent">
<item name="android:windowBackground">@color/transparent_bg</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
</style>
在Manifest中中需要透明的Activity内设置theme为我们自定义的即可
android:theme="@style/myTransparent"
或者在代码中引用布局:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.Transparent); //写在前面
setContentView(R.layout.xxx);
}
Activity中控件的透明度效果
在Activity背景透明的基础上可以设置里面的控件的透明度
Window window=getWindow();
WindowManager.LayoutParams wl = window.getAttributes();
wl.flags=WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
wl.alpha=0.3f; //这句就是设置窗口里控件的透明度的,0.0全透明,1.0不透明.
window.setAttributes(wl);