java.lang.Object | ||
? | android.view.ViewGroup.LayoutParams | |
? | android.view.WindowManager.LayoutParams |
主要成員常量
Window flag系列
該系列主要用於對Window的flag進行設置。設置Window的flag,可以直接對Window的getAttributes()得到其 WindowManager.LayoutParams對象,然后直接對它flag變量操作。也可以Window的addFlags(int flags)方法,setFlags(int flags, int mask)方法,clearFlags(int flags)方法進行操作。
比如設置全屏
:
Window window = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
winParams.flags=winParams.flags|WindowManager.LayoutParams.FLAG_FULLSCREEN
;
或
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
或
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
取消全屏
Window window = getWindow();
winParams.flags=winParams.flags&~WindowManager.LayoutParams.FLAG_FULLSCREEN;
或
window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
或
window.setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN);
所有Window flag如下:
int | FLAGS_CHANGED | 用於表示flags發生了變化,關於此的詳細內容請看后文。 |
int | FLAG_ALLOW_LOCK_WHILE_SCREEN_ON | Window flag: as long as this window is visible to the user, allow the lock screen to activate while the screen is on. 當該window對用戶可見的時候,允許鎖屏。 |
int | FLAG_ALT_FOCUSABLE_IM | Window flag: invert the state of FLAG_NOT_FOCUSABLE with respect to how this window interacts with the current method. |
int | FLAG_BLUR_BEHIND | Window flag: blur everything behind this window. 讓該window后所有東西都模糊(blur) |
int | FLAG_DIM_BEHIND | Window flag: everything behind this window will be dimmed. 讓該window后所有的東西都成暗淡(dim) |
int | FLAG_DISMISS_KEYGUARD | Window flag: when set the window will cause the keyguard to be dismissed, only if it is not a secure lock keyguard. |
int | FLAG_DITHER | Window flag: turn on dithering when compositing this window to the screen. 開啟抖動(dithering) |
int | FLAG_FORCE_NOT_FULLSCREEN | Window flag: Override {@link #FLAG_FULLSCREEN and force the screen decorations (such as status bar) to be shown. 恢復window非全屏顯示 (讓背景不是暗淡的) |
int | FLAG_FULLSCREEN | Window flag: Hide all screen decorations (e.g. 讓window進行全屏顯示 |
int | FLAG_HARDWARE_ACCELERATED | Indicates whether this window should be hardware accelerated. 對該window進行硬件加速. 該flag必須在設置你的Activity或Dialog的Content View之前進行設置, 而且如果你在mainfest文件中用android:hardwareAccelerated開啟了該屬性的話,那么你在程序中就不能再改變它。mainfest文件中android:hardwareAccelerated屬性默認是開啟的("true")。 |
int | FLAG_IGNORE_CHEEK_PRESSES | Window flag: intended for windows that will often be used when the user is holding the screen against their face, it will aggressively filter the event stream to prevent unintended presses in this situation that may not be desired for a particular window, when such an event stream is detected, the application will receive a CANCEL motion event to indicate this so applications can handle this accordingly by taking no action on the event until the finger is released. |
int | FLAG_KEEP_SCREEN_ON | Window flag: as long as this window is visible to the user, keep the device's screen turned on and bright. 當該window對用戶可見時,讓設備屏幕處於高亮(bright)狀態。 |
int | FLAG_LAYOUT_INSET_DECOR | Window flag: a special option only for use in combination with FLAG_LAYOUT_IN_SCREEN . |
int | FLAG_LAYOUT_IN_SCREEN | Window flag: place the window within the entire screen, ignoring decorations around the border (a.k.a. 讓window占滿整個手機屏幕,不留任何邊界(border) |
int | FLAG_LAYOUT_NO_LIMITS | Window flag: allow window to extend outside of the screen. window大小不再不受手機屏幕大小限制,即window可能超出屏幕之外,這時部分內容在屏幕之外。 |
int | FLAG_NOT_FOCUSABLE | Window flag: this window won't ever get key input focus, so the user can not send key or other button events to it. 讓window不能獲得焦點,這樣用戶快就不能向該window發送按鍵事件及按鈕事件 |
int | FLAG_NOT_TOUCHABLE | Window flag: this window can never receive touch events. 讓該window不接受觸摸屏事件 |
int | FLAG_NOT_TOUCH_MODAL | Window flag: Even when this window is focusable (its {@link #FLAG_NOT_FOCUSABLE is not set), allow any pointer events outside of the window to be sent to the windows behind it. 即使在該window在可獲得焦點情況下,仍然把該window之外的任何event發送到該window之后的其他window. |
int | FLAG_SCALED | Window flag: a special mode where the layout parameters are used to perform scaling of the surface when it is composited to the screen. |
int | FLAG_SECURE | Window flag: don't allow screen shots while this window is displayed. 當該window在進行顯示的時候,不允許截屏。 |
int | FLAG_SHOW_WALLPAPER | Window flag: ask that the system wallpaper be shown behind your window. 在該window后顯示系統的牆紙(wallpaper) |
int | FLAG_SHOW_WHEN_LOCKED | Window flag: special flag to let windows be shown when the screen is locked. 當鎖屏的時候,顯示該window. |
int | FLAG_SPLIT_TOUCH | Window flag: when set the window will accept for touch events outside of its bounds to be sent to other windows that also support split touch. When this flag is not set, the first pointer that goes down determines the window to which all subsequent touches go until all pointers go up. When this flag is set, each pointer (not necessarily the first) that goes down determines the window to which all subsequent touches of that pointer will go until that pointer goes up thereby enabling touches with multiple pointers to be split across multiple windows 當該window在可以接受觸摸屏情況下,讓因在該window之外,而發送到后面的window的觸摸屏可以支持split touch. |
int | FLAG_TOUCHABLE_WHEN_WAKING | Window flag: When set, if the device is asleep when the touch screen is pressed, you will receive this first touch event. 當手機處於睡眠狀態時,如果屏幕被按下,那么該window將第一個收到到事件 |
int | FLAG_TURN_SCREEN_ON | Window flag: when set as a window is being added or made visible, once the window has been shown then the system will poke the power manager's user activity (as if the user had woken up the device) to turn the screen on. 當然window被顯示的時候,系統將把它當做一個用戶活動事件,以點亮手機屏幕。 |
int | FLAG_WATCH_OUTSIDE_TOUCH | Window flag: if you have set FLAG_NOT_TOUCH_MODAL , you can set this flag to receive a single special MotionEvent with the action MotionEvent.ACTION_OUTSIDE for touches that occur outside of your window. 如果你設置了該flag,那么在你FLAG_NOT_TOUNCH_MODAL的情況下,即使觸摸屏事件發送在該window之外,其事件被發送到了后面的window,那么該window仍然將以MotionEvent.ACTION_OUTSIDE形式收到該觸摸屏事件 |
softInputMode系列
該系列主要用於表示softInputMode,我們可以通過WindowManager.LayoutParams的softInputMode變量直接進行設置。
softInputMode只能是一個顯示軟鍵盤時的window調整方式bite與一個控制軟鍵盤顯示狀態的bite的組合。
顯示軟鍵盤時的window調整方式可以是
SOFT_INPUT_ADJUST_NOTHING
,
SOFT_INPUT_ADJUST_PAN
,
SOFT_INPUT_ADJUST_RESIZE
,
SOFT_INPUT_ADJUST_UNSPECIFIED
之一。
用於描述軟鍵盤顯示的規則可以是
SOFT_INPUT_STATE_ALWAYS_HIDDEN
,
SOFT_INPUT_STATE_ALWAYS_VISIBLE
,
SOFT_INPUT_STATE_HIDDEN
,
SOFT_INPUT_STATE_VISIBLE
,
SOFT_INPUT_STATE_UNSPECIFIED
之一
關於softInputMode的更多知識請參考《
軟件盤的開關》
所有的softInputMode系列常量如下:
int | SOFT_INPUT_ADJUST_NOTHING | Adjustment option for softInputMode : set to have a window not adjust for a shown input method.當顯示軟鍵盤時,不調整window的布局 |
int | SOFT_INPUT_ADJUST_PAN | Adjustment option for softInputMode : set to have a window pan when an input method is shown, so it doesn't need to deal with resizing but just panned by the framework to ensure the current input focus is visible.當顯示軟鍵盤時,調整window的空白區域來顯示軟鍵盤。即使調整空白區域,軟鍵盤還是有可能遮擋一些有內容區域,這時用戶就只有退出軟鍵盤才能看到這些被遮擋區域並進行交互。 |
int | SOFT_INPUT_ADJUST_RESIZE | Adjustment option for softInputMode : set to allow the window to be resized when an input method is shown, so that its contents are not covered by the input method.當顯示軟鍵盤時,調整window內的控件大小以便顯示軟鍵盤。這樣的話控件可能會變形。 |
int | SOFT_INPUT_ADJUST_UNSPECIFIED | Adjustment option for softInputMode : nothing specified.不指定顯示軟件盤時,window的調整方式。 |
int | SOFT_INPUT_IS_FORWARD_NAVIGATION | Bit for softInputMode : set when the user has navigated forward to the window.表示用戶導航(navigate)到了你的window |
int | SOFT_INPUT_MASK_ADJUST | Mask for softInputMode of the bits that determine the way that the window should be adjusted to accommodate the soft input window.顯示軟鍵盤時,用於表示window調整方式的bite的mask。 顯示軟鍵盤時的window調整方式可以是SOFT_INPUT_ADJUST_NOTHING,SOFT_INPUT_ADJUST_PAN,SOFT_INPUT_ADJUST_RESIZE,SOFT_INPUT_ADJUST_UNSPECIFIED。 用於描述軟鍵盤顯示的規則可以是SOFT_INPUT_STATE_ALWAYS_HIDDEN,SOFT_INPUT_STATE_ALWAYS_VISIBLE, SOFT_INPUT_STATE_HIDDEN,SOFT_INPUT_STATE_VISIBLE,SOFT_INPUT_STATE_UNSPECIFIED之一 |
int | SOFT_INPUT_MASK_STATE | Mask for softInputMode of the bits that determine the desired visibility state of the soft input area for this window.用於描述軟鍵盤顯示規則的bite的mask. |
int | SOFT_INPUT_MODE_CHANGED | 用於表示softInputMode發生了變化。關於此的詳細內容請看后文。 |
int | SOFT_INPUT_STATE_ALWAYS_HIDDEN | Visibility state for softInputMode : please always hide any soft input area when this window receives focus. 總是隱藏軟鍵盤。 |
int | SOFT_INPUT_STATE_ALWAYS_VISIBLE | Visibility state for softInputMode :please always make the soft input area visible when this window receives input focus. 總是顯示軟鍵盤 |
int | SOFT_INPUT_STATE_HIDDEN | Visibility state for softInputMode : please hide any soft input area when normally appropriate (when the user is navigating forward to your window). 用戶導航(navigate)到你的窗口的時候,隱藏軟鍵盤 |
int | SOFT_INPUT_STATE_UNCHANGED | Visibility state for softInputMode : please don't change the state of the soft input area. |
int | SOFT_INPUT_STATE_UNSPECIFIED | Visibility state for softInputMode : no state has been specified.沒有軟鍵盤顯示的約定規則 |
int | SOFT_INPUT_STATE_VISIBLE | Visibility state for softInputMode : please show the soft input area when normally appropriate (when the user is navigating forward to your window). 用戶導航(navigate)到你的窗口的時候,顯示軟鍵盤 |
Window type系列
該系列主要用於表示
window
的類型。我們可以通過
WindowManager.LayoutParams
的
type
變量直接進行設置.
int | TYPE_APPLICATION | Window type: a normal application window. 普通的應用程序window,token必須設置為Activity的token,以指出該窗口屬誰 |
int | TYPE_APPLICATION_ATTACHED_DIALOG | Window type: like TYPE_APPLICATION_PANEL , but layout of the window happens as that of a top-level window, not as a child of its container.對話框。類似於面板窗口,繪制類似於頂層窗口,而不是宿主的子窗口。 |
int | TYPE_APPLICATION_MEDIA | Window type: window for showing media (e.g. 媒體窗口,例如視頻。顯示於宿主窗口下層。 |
int | TYPE_APPLICATION_PANEL | Window type: a panel on top of an application window. 面板窗口,顯示於宿主窗口上層 |
int | TYPE_APPLICATION_STARTING | Window type: special application window that is displayed while the application is starting. 用於應用程序啟動時所顯示的窗口。應用本身不要使用這種類型。它用於讓系統顯示些信息,直到應用程序可以開啟自己的窗口 |
int | TYPE_APPLICATION_SUB_PANEL | Window type: a sub-panel on top of an application window. 應用程序窗口的子面板。顯示於所有面板窗口的上層。(GUI的一般規律,越“子”越靠上) |
int | TYPE_BASE_APPLICATION | Window type: an application window that serves as the "base" window of the overall application; all other application windows will appear on top of it. 所有程序窗口的“基地”窗口,其他應用程序窗口都顯示在它上面。 |
int | TYPE_CHANGED | 表示window的類型發生了變化,關於此的詳細內容請看后文。 |
int | TYPE_INPUT_METHOD | Window type: internal input methods windows, which appear above the normal UI. 內部輸入法窗口,顯示於普通UI之上。應用程序可重新布局以免被此窗口覆蓋 |
int | TYPE_INPUT_METHOD_DIALOG | Window type: internal input methods dialog windows, which appear above the current input method window. 內部輸入法對話框,顯示於當前輸入法窗口之上 |
int | TYPE_KEYGUARD | Window type: keyguard window. 鎖屏窗口 |
int | TYPE_KEYGUARD_DIALOG | Window type: dialogs that the keyguard shows 鎖屏時顯示的對話框 |
int | TYPE_PHONE | Window type: phone. 電話窗口。它用於電話交互(特別是呼入)。它置於所有應用程序之上,狀態欄之下。 |
int | TYPE_PRIORITY_PHONE | Window type: priority phone UI, which needs to be displayed even if the keyguard is active. 電話優先,當鎖屏時顯示。此窗口不能獲得輸入焦點,否則影響鎖屏。 |
int | TYPE_SEARCH_BAR | Window type: the search bar. 搜索欄。只能有一個搜索欄;它位於屏幕上方。 |
int | TYPE_STATUS_BAR | Window type: the status bar. 狀態欄類型的window。只能有一個狀態欄window;它位於屏幕頂端,其他窗口都位於它下方。 |
int | TYPE_STATUS_BAR_PANEL | Window type: panel that slides out from over the status bar 狀態欄的滑動面板 |
int | TYPE_SYSTEM_ALERT | Window type: system window, such as low power alert. 系統提示window,比如電池低的警告。它總是出現在應用程序窗口之上。 |
int | TYPE_SYSTEM_DIALOG | Window type: panel that slides out from the status bar 系統對話框。(例如音量調節框) |
int | TYPE_SYSTEM_ERROR | Window type: internal system error windows, appear on top of everything they can. 系統內部錯誤提示,顯示於所有內容之上 |
int | TYPE_SYSTEM_OVERLAY | Window type: system overlay windows, which need to be displayed on top of everything else. 系統頂層窗口。顯示在其他一切內容之上。此窗口不能獲得輸入焦點,否則影響鎖屏。 |
int | TYPE_TOAST | Window type: transient notifications. toast類型的window |
int | TYPE_WALLPAPER | Window type: wallpaper window, placed behind any window that wants to sit on top of the wallpaper. 用於牆紙的window |
window 的類型被分為了3大類:
Application windows
(ranging from
FIRST_APPLICATION_WINDOW
to
LAST_APPLICATION_WINDOW
) are normal top-level application windows. For these types of windows, the token must be set to the token of the activity they are a part of (this will normally be done for you if token is null).
Sub-windows
(ranging from
FIRST_SUB_WINDOW
to
LAST_SUB_WINDOW
) are associated with another top-level window. For these types of windows, the token must be the token of the window it is attached to.
System windows
(ranging from
FIRST_SYSTEM_WINDOW
to
LAST_SYSTEM_WINDOW
) are special types of windows for use by the system for specific purposes. They should not normally be used by applications, and a special permission is required to use them.
系統專門定義了
FIRST_APPLICATION_WINDOW
,
LAST_APPLICATION_WINDOW
,
FIRST_SUB_WINDOW
,
LAST_SUB_WINDOW,
FIRST_SYSTEM_WINDOW,LAST_SYSTEM_WINDOW 以表示window的3大類型的類型的取值的范圍。
int | FIRST_APPLICATION_WINDOW | Start of window types that represent normal application windows. Constant Value: 1 (0x00000001) |
int | FIRST_SUB_WINDOW | Start of types of sub-windows. Constant Value: 1000 (0x000003e8) |
int | FIRST_SYSTEM_WINDOW | Start of system-specific window types. Constant Value: 2000 (0x000007d0) |
int | LAST_APPLICATION_WINDOW | End of types of application windows. Constant Value: 99 (0x00000063) |
int | LAST_SUB_WINDOW | End of types of sub-windows. Constant Value: 1999 (0x000007cf) |
int | LAST_SYSTEM_WINDOW | End of types of system windows. Constant Value: 2999 (0x00000bb7) |
關於更多請看下文《
WindowManager.LayoutParams(下)》
WindowManager.LayoutParams(下)
2011-08-07 08:08:54| 分類: Android基礎 | 標簽:windowmanager |字號大中小 訂閱
本文參照自:
http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html
BRIGHTNESS系列
該系列主要用於設置window的
brightness
(
screenBrightness
/
buttonBrightness
)。
我們可以通過
WindowManager.LayoutParams
的
screenBrightness
/
buttonBrightness
變量直接進行設置。
其中
screenBrightness
表示屏幕的b
rightness
,而
buttonBrightness
表示一般按鍵和鍵盤按鍵的
brightness
float | BRIGHTNESS_OVERRIDE_FULL | Value for screenBrightness and buttonBrightness indicating that the screen or button backlight brightness should be set to the hightest value when this window is in front. 把brightness(screenBrightness/buttonBrightness)設置到最高值。 |
float | BRIGHTNESS_OVERRIDE_NONE | Default value for screenBrightness and buttonBrightness indicating that the brightness value is not overridden for this window and normal brightness policy should be used.不對brightness(screenBrightness/buttonBrightness)重新進行設置,采用默認的普通值。 |
float | BRIGHTNESS_OVERRIDE_OFF | Value for screenBrightness and buttonBrightness indicating that the screen or button backlight brightness should be set to the lowest value when this window is in front.把brightness(screenBrightness/buttonBrightness)設置到最低值。 |
changed系列
該系列主要用於
int copyFrom (WindowManager.LayoutParams o)函數中。
在函數中,首先將用參數中傳入的
WindowManager.LayoutParams的信息復制到本
WindowManager.LayoutParams
中,然后返回一個整數,以bite形式表示調用該函數后
WindowManager.LayoutParams的哪些信息發送了變化
int | ALPHA_CHANGED | 用於表示成員變量alpha是否被改變 |
int | ANIMATION_CHANGED | 用於表示成員變量windowAnimations是否被改變 |
int | DIM_AMOUNT_CHANGED | 用於表示成員變量dimAmount是否被改變 |
int | FLAGS_CHANGED | 用於表示成員變量flags是否被改變 |
int | LAYOUT_CHANGED | 用於表示layout是否被改變.這里的layout是指以下變量所包含的信息: width,height,x,y, verticalMargin,verticalWeight,horizontalMargin,horizontalWeight |
int | SCREEN_BRIGHTNESS_CHANGED | 用於表示brightness是否被改變. 這里的brightness是指以下變量對應的信息:screenBrightness,buttonBrightness |
int | SCREEN_ORIENTATION_CHANGED | 用於表示成員變量screenOrientation是否被改變 |
int | SOFT_INPUT_MODE_CHANGED | 用於表示成員變量softInputMode是否被改變 |
int | TITLE_CHANGED | 用於表示成員變量title是否被改變 |
int | TYPE_CHANGED | 用於表示成員變量type是否被改變 |
int | FORMAT_CHANGED | Constant Value: 8 (0x00000008) 用於表示成員變量format是否被改變 |
成員變量
繼承於
ViewGroup.LayoutParams
的成員變量
public int | height | Information about how tall the view wants to be. |
public LayoutAnimationController.AnimationParameters | layoutAnimationParameters | Used to animate layouts. |
public int | width | Information about how wide the view wants to be. |
自身的成員變量
public static final Creator<WindowManager.LayoutParams> | CREATOR | |
public float | alpha | An alpha value to apply to this entire window. |
public float | buttonBrightness | This can be used to override the standard behavior of the button and keyboard backlights. |
public float | dimAmount | When FLAG_DIM_BEHIND is set, this is the amount of dimming to apply. |
public int | flags | Various behavioral options/flags. |
public int | format | The desired bitmap format. |
public int | gravity | Placement of window within the screen as per Gravity . |
public float | horizontalMargin | The horizontal margin, as a percentage of the container's width, between the container and the widget. |
public float | horizontalWeight | Indicates how much of the extra space will be allocated horizontally to the view associated with these LayoutParams. |
public int | memoryType | This field is deprecated. this is ignored |
public String | packageName | Name of the package owning this window. |
public float | screenBrightness | This can be used to override the user's preferred brightness of the screen. |
public int | screenOrientation | Specific orientation value for a window. |
public int | softInputMode | Desired operating mode for any soft input area. |
public int | systemUiVisibility | Control the visibility of the status bar. |
public IBinder | token | Identifier for this window. |
public int | type | The general type of window. |
public float | verticalMargin | The vertical margin, as a percentage of the container's height, between the container and the widget. |
public float | verticalWeight | Indicates how much of the extra space will be allocated vertically to the view associated with these LayoutParams. |
public int | windowAnimations | A style resource defining the animations to use for this window. |
public int | x | X position for this window. |
public int | y | Y position for this window. |
成員函數
ublic Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
final int | copyFrom(WindowManager.LayoutParams o) | ||||||||||
String | debug(String output)
Returns a String representation of this set of layout parameters.
|
||||||||||
int | describeContents()
Describe the kinds of special objects contained in this Parcelable's marshalled representation.
|
||||||||||
final CharSequence | getTitle() | ||||||||||
static boolean | mayUseInputMethod(int flags)
Given a particular set of window manager flags, determine whether such a window may be a target for an input method when it has focus.
|
||||||||||
final void | setTitle(CharSequence title) | ||||||||||
String | toString()
Returns a string containing a concise, human-readable description of this object.
|
||||||||||
void | writeToParcel(Parcel out, int parcelableFlags)
Flatten this object in to a Parcel.
|