本示例使用自定义主题样式,实现模糊半透明的Activity。
1. 定义清单文件(AndroidManifest.xml)
package="my.android.test"
android:versionCode="1"
android:versionName="1.0">
android:label="@string/app_name"
android:theme="@style/Theme.Transparent">
2. 定义字符串资源(values/strings.xml)
Hello World, TranslucentBlur!
TranslucentBlur
Example of how you can make an
activity have a translucent background, compositing over
whatever is behind it.
3. 定义用于描画的颜色资源(values/colors.xml)
#00000000
4. 定义模糊半透明主题样式(values/styles.xml)
true
@android:style/Animation.Translucent
@drawable/transparent_background
true
#fff
5. 定义布局(translucent_blackground.xml)
android:layout_width="match_parent" android:layout_height="match_parent"
android:gravity="center_vertical|center_horizontal"
android:text="@string/translucent_background"/>
6. 定义Activity类(TranslucentBlur.java)
package my.android.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.WindowManager;
publicclass TranslucentBlur extends Activity {
/** Activity被首次创建时,调用这个回调方法*/
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**
* getWindow()方法获取当前Activity的Window对象,通过这个对象可以直接访问Window类的
* API接口,本例中调用setFlags()方法设置布局参数FLAG_BLUR_BEHIND,让窗口中的每个组件都变的模糊
*/
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
//填充Activity布局
setContentView(R.layout.translucent_background);
}
}