Android下Dialog及Activity屏蔽Home键详解(2)

如果你喜欢用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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wypjff.html