如果你喜欢用Theme.Dialog去把一个Activity装饰成一个Dialog去显示,你会发现。
在
Androidmanifest.xml代码
android:theme="@android:style/Theme.Dialog"背景是透明的。
如果在
Android代码
setTheme(android.R.style.Theme_Dialog);背景则是黑色的。
若你在Activity重写onAttachedToWindow
Java代码
public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); super.onAttachedToWindow(); }那么出来的效果,就是透明背景的dialog了,当然前提是你需要实现屏蔽Home键。
- - - - - - - - - - - - 华丽的分界线 - - - - - - - - - - - -
WindowManager.LayoutParams 是 WindowManager 接口的嵌套类;继承于 ViewGroup.LayoutParams 。
它的内容十分丰富。其实WindowManager.java的主要内容就是由这个类定义构成。下面来分析一下这个类:
定义
public static class WindowManager.LayoutParams extends ViewGroup.LayoutParams implements Parcelable
继承关系
java.lang.Object
?android.view.ViewGroup.LayoutParams
?android.view.WindowManager.LayoutParams
继承来的属性与常量
从 ViewManager.LayoutParams 继承来的属性:
android:layout_height
Specifies the basic height of the view.
android:layout_width
Specifies the basic width of the view.
从 ViewManager.LayoutParams继承的常量:
FILL_PARENT
WRAP_CONTENT
MATCH_PARENT
两个变量:
width
height