1. 程式人生 > >Android 系統(48)---WindowManager.LayoutParams 詳解

Android 系統(48)---WindowManager.LayoutParams 詳解

6.  public int flags;
     行為選項/旗標,預設為 none .

    下面定義了 flags 的取值:
      視窗之後的內容變暗。
      public static final int FLAG_DIM_BEHIND       = 0x00000002;

      視窗之後的內容變模糊。
      public static final int FLAG_BLUR_BEHIND       = 0x00000004;

      不許獲得焦點。
      public static final int FLAG_NOT_FOCUSABLE     = 0x00000008;

      不接受觸控式螢幕事件。
      public static final int FLAG_NOT_TOUCHABLE     = 0x00000010;

      當視窗可以獲得焦點(沒有設定 FLAG_NOT_FOCUSALBE 選項)時,仍然將視窗範圍之外的點裝置事件(滑鼠、觸控式螢幕)傳送給後面的視窗處理。否則它將獨佔所有的點裝置事件,而不管它們是不是發生在視窗範圍內。
      public static final int FLAG_NOT_TOUCH_MODAL   = 0x00000020;

      如果設定了這個標誌,當裝置休眠時,點選觸控式螢幕,裝置將收到這個第一觸控事件。
      通常第一觸控事件被系統所消耗,使用者不會看到他們點選螢幕有什麼反應。
      public static final int FLAG_TOUCHABLE_WHEN_WAKING = 0x00000040;

      當此視窗為使用者可見時,保持裝置常開,並保持亮度不變。
      public static final int FLAG_KEEP_SCREEN_ON    = 0x00000080;

      窗口占滿整個螢幕,忽略周圍的裝飾邊框(例如狀態列)。此視窗需考慮到裝飾邊框的內容。
      public static final int FLAG_LAYOUT_IN_SCREEN   =0x00000100;

      允許視窗擴充套件到螢幕之外。
      public static final int FLAG_LAYOUT_NO_LIMITS   =0x00000200;

      視窗顯示時,隱藏所有的螢幕裝飾(例如狀態條)。使窗口占用整個顯示區域。
      public static final int FLAG_FULLSCREEN     = 0x00000400;

      此選項將覆蓋FLAG_FULLSCREEN選項,並強制螢幕裝飾(如狀態條)彈出。
      public static final int FLAG_FORCE_NOT_FULLSCREEN   =0x00000800;

      抖動。指 對半透明的顯示方法。又稱“點透”。圖形處理較差的裝置往往用“點透”替代Alpha混合。
      public static final int FLAG_DITHER           = 0x00001000;

      不允許螢幕截圖。
      public static final int FLAG_SECURE           = 0x00002000;

      一種特殊模式,佈局引數用於指示顯示比例。
      public static final int FLAG_SCALED           = 0x00004000;

      當螢幕有可能貼著臉時,這一選項可防止面頰對螢幕造成誤操作。
      public static final int FLAG_IGNORE_CHEEK_PRESSES   = 0x00008000;

      當請求佈局時,你的視窗可能出現在狀態列的上面或下面,從而造成遮擋。當設定這一選項後,視窗管理器將確保視窗內容不會被裝飾條(狀態列)蓋住。
      public static final int FLAG_LAYOUT_INSET_DECOR = 0x00010000;

      反轉FLAG_NOT_FOCUSABLE選項。
      如果同時設定了FLAG_NOT_FOCUSABLE選項和本選項,視窗將能夠與輸入法互動,允許輸入法視窗覆蓋;
      如果FLAG_NOT_FOCUSABLE沒有設定而設定了本選項,視窗不能與輸入法互動,可以覆蓋輸入法視窗。
      public static final int FLAG_ALT_FOCUSABLE_IM = 0x00020000;

      如果你設定了FLAG_NOT_TOUCH_MODAL,那麼當觸屏事件發生在視窗之外事,可以通過設定此標誌接收到一個 MotionEvent.ACTION_OUTSIDE事件。注意,你不會收到完整的down/move/up事件,只有第一次down事件時可以收到 ACTION_OUTSIDE。
      public static final int FLAG_WATCH_OUTSIDE_TOUCH = 0x00040000;

      當螢幕鎖定時,視窗可以被看到。這使得應用程式視窗優先於鎖屏介面。可配合FLAG_KEEP_SCREEN_ON選項點亮螢幕並直接顯示在鎖屏介面之前。可使用FLAG_DISMISS_KEYGUARD選項直接解除非加鎖的鎖屏狀態。此選項只用於最頂層的全螢幕視窗。
      public static final int FLAG_SHOW_WHEN_LOCKED = 0x00080000;

      請求系統牆紙顯示在你的視窗後面。視窗必須是半透明的。
      public static final int FLAG_SHOW_WALLPAPER = 0x00100000;

      視窗一旦顯示出來,系統將點亮螢幕,正如使用者喚醒裝置那樣。
      public static final int FLAG_TURN_SCREEN_ON = 0x00200000;

      解除鎖屏。只有鎖屏介面不是加密的才能解鎖。如果鎖屏介面是加密的,那麼使用者解鎖之後才能看到此視窗,除非設定了FLAG_SHOW_WHEN_LOCKED選項。
      public static final int FLAG_DISMISS_KEYGUARD = 0x00400000;

      鎖屏介面淡出時,繼續執行它的動畫。
      public static final int FLAG_KEEP_SURFACE_WHILE_ANIMATING =0x10000000;

      以原始尺寸顯示視窗。用於在相容模式下執行程式。
      public static final int FLAG_COMPATIBLE_WINDOW = 0x20000000;

      用於系統對話方塊。設定此選項的視窗將無條件獲得焦點。
      public static final int FLAG_SYSTEM_ERROR = 0x40000000;