public abstract class

Window

extends Object
java.lang.Object
   ↳ android.view.Window

Class Overview

Abstract base class for a top-level window look and behavior policy. An instance of this class should be used as the top-level view added to the window manager. It provides standard UI policies such as a background, title area, default key processing, etc.

The only existing implementation of this abstract class is android.policy.PhoneWindow, which you should instantiate when needing a Window. Eventually that class will be refactored and a factory method added for creating Window instances without knowing about a particular implementation.

Summary

Nested Classes
interface Window.Callback API from a Window back to its caller. 
Constants
int DEFAULT_FEATURES The default features enabled
int FEATURE_CONTEXT_MENU Flag for the context menu.
int FEATURE_CUSTOM_TITLE Flag for custom title.
int FEATURE_INDETERMINATE_PROGRESS Flag for indeterminate progress
int FEATURE_LEFT_ICON Flag for having an icon on the left side of the title bar
int FEATURE_NO_TITLE Flag for the "no title" feature, turning off the title at the top of the screen.
int FEATURE_OPTIONS_PANEL Flag for the "options panel" feature.
int FEATURE_PROGRESS Flag for the progress indicator feature
int FEATURE_RIGHT_ICON Flag for having an icon on the right side of the title bar
int ID_ANDROID_CONTENT The ID that the main layout in the XML layout file should have.
int PROGRESS_END Ending value for the (primary) progress
int PROGRESS_INDETERMINATE_OFF Flag for setting the progress bar's indeterminate mode off
int PROGRESS_INDETERMINATE_ON Flag for setting the progress bar's indeterminate mode on
int PROGRESS_SECONDARY_END Highest possible value for the secondary progress
int PROGRESS_SECONDARY_START Lowest possible value for the secondary progress
int PROGRESS_START Starting value for the (primary) progress
int PROGRESS_VISIBILITY_OFF Flag for setting the progress bar's visibility to GONE
int PROGRESS_VISIBILITY_ON Flag for setting the progress bar's visibility to VISIBLE
Public Constructors
Window(Context context)
Public Methods
abstract void addContentView(View view, ViewGroup.LayoutParams params)
Variation on setContentView(View, android.view.ViewGroup.LayoutParams) to add an additional content view to the screen.
void addFlags(int flags)
Convenience function to set the flag bits as specified in flags, as per setFlags(int, int).
void clearFlags(int flags)
Convenience function to clear the flag bits as specified in flags, as per setFlags(int, int).
abstract void closeAllPanels()
abstract void closePanel(int featureId)
View findViewById(int id)
Finds a view that was identified by the id attribute from the XML that was processed in onCreate(Bundle).
final WindowManager.LayoutParams getAttributes()
Retrieve the current window attributes associated with this panel.
final Window.Callback getCallback()
Return the current Callback interface for this window.
final Window getContainer()
Return the container for this Window.
final Context getContext()
Return the Context this window policy is running in, for retrieving resources and other information.
abstract View getCurrentFocus()
Return the view in this Window that currently has focus, or null if there are none.
abstract View getDecorView()
Retrieve the top-level window decor view (containing the standard window frame/decorations and the client's content inside of that), which can be added as a window to the window manager.
abstract LayoutInflater getLayoutInflater()
Quick access to the LayoutInflater instance that this Window retrieved from its Context.
abstract int getVolumeControlStream()
WindowManager getWindowManager()
Return the window manager allowing this Window to display its own windows.
final TypedArray getWindowStyle()
Return the Window attributes from this window's theme.
final boolean hasChildren()
final boolean isActive()
abstract boolean isFloating()
Return whether this window is being displayed with a floating style (based on the windowIsFloating attribute in the style/theme).
abstract boolean isShortcutKey(int keyCode, KeyEvent event)
Is a keypress one of the defined shortcut keys for this window.
final void makeActive()
abstract void onConfigurationChanged(Configuration newConfig)
Should be called when the configuration is changed.
abstract void openPanel(int featureId, KeyEvent event)
abstract View peekDecorView()
Retrieve the current decor view, but only if it has already been created; otherwise returns null.
abstract boolean performContextMenuIdentifierAction(int id, int flags)
abstract boolean performPanelIdentifierAction(int featureId, int id, int flags)
abstract boolean performPanelShortcut(int featureId, int keyCode, KeyEvent event, int flags)
boolean requestFeature(int featureId)
Enable extended screen features.
abstract void restoreHierarchyState(Bundle savedInstanceState)
abstract Bundle saveHierarchyState()
void setAttributes(WindowManager.LayoutParams a)
Specify custom window attributes.
abstract void setBackgroundDrawable(Drawable drawable)
Change the background of this window to a custom Drawable.
void setBackgroundDrawableResource(int resid)
Change the background of this window to a Drawable resource.
void setCallback(Window.Callback callback)
Set the Callback interface for this window, used to intercept key events and other dynamic operations in the window.
abstract void setChildDrawable(int featureId, Drawable drawable)
abstract void setChildInt(int featureId, int value)
void setContainer(Window container)
Set the container for this window.
abstract void setContentView(View view)
Convenience for setContentView(View, android.view.ViewGroup.LayoutParams) set the screen content to an explicit view.
abstract void setContentView(int layoutResID)
Convenience for setContentView(View, android.view.ViewGroup.LayoutParams) to set the screen content from a layout resource.
abstract void setContentView(View view, ViewGroup.LayoutParams params)
Set the screen content to an explicit view.
abstract void setFeatureDrawable(int featureId, Drawable drawable)
Set an explicit Drawable value for feature of this window.
abstract void setFeatureDrawableAlpha(int featureId, int alpha)
Set a custom alpha value for the given drawale feature, controlling how much the background is visible through it.
abstract void setFeatureDrawableResource(int featureId, int resId)
Set the value for a drawable feature of this window, from a resource identifier.
abstract void setFeatureDrawableUri(int featureId, Uri uri)
Set the value for a drawable feature of this window, from a URI.
abstract void setFeatureInt(int featureId, int value)
Set the integer value for a feature.
void setFlags(int flags, int mask)
Set the flags of the window, as per the WindowManager.LayoutParams flags.
void setFormat(int format)
Set the format of window, as per the PixelFormat types.
void setGravity(int gravity)
Set the gravity of the window, as per the Gravity constants.
void setLayout(int width, int height)
Set the width and height layout parameters of the window.
void setSoftInputMode(int mode)
Specify an explicit soft input mode to use for the window, as per WindowManager.LayoutParams.softInputMode.
abstract void setTitle(CharSequence title)
abstract void setTitleColor(int textColor)
void setType(int type)
Set the type of the window, as per the WindowManager.LayoutParams types.
abstract void setVolumeControlStream(int streamType)
void setWindowAnimations(int resId)
Specify custom animations to use for the window, as per WindowManager.LayoutParams.windowAnimations.
void setWindowManager(WindowManager wm, IBinder appToken, String appName)
Set the window manager for use by this Window to, for example, display panels.
abstract boolean superDispatchKeyEvent(KeyEvent event)
Used by custom windows, such as Dialog, to pass the key press event further down the view hierarchy.
abstract boolean superDispatchTouchEvent(MotionEvent event)
Used by custom windows, such as Dialog, to pass the touch screen event further down the view hierarchy.
abstract boolean superDispatchTrackballEvent(MotionEvent event)
Used by custom windows, such as Dialog, to pass the trackball event further down the view hierarchy.
abstract void takeInputQueue(InputQueue.Callback callback)
Take ownership of this window's InputQueue.
abstract void takeKeyEvents(boolean get)
Request that key events come to this activity.
abstract void takeSurface(SurfaceHolder.Callback2 callback)
Take ownership of this window's surface.
abstract void togglePanel(int featureId, KeyEvent event)
Protected Methods
final int getFeatures()
Return the feature bits that are enabled.
final int getForcedWindowFlags()
Return the window flags that have been explicitly set by the client, so will not be modified by getDecorView().
final int getLocalFeatures()
Return the feature bits that are being implemented by this Window.
final boolean hasSoftInputMode()
Has the app specified their own soft input mode?
abstract void onActive()
void setDefaultWindowFormat(int format)
Set the default format of window, as per the PixelFormat types.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

protected static final int DEFAULT_FEATURES

Since: API Level 1

The default features enabled

Constant Value: 65 (0x00000041)

public static final int FEATURE_CONTEXT_MENU

Since: API Level 1

Flag for the context menu. This is enabled by default.

Constant Value: 6 (0x00000006)

public static final int FEATURE_CUSTOM_TITLE

Since: API Level 1

Flag for custom title. You cannot combine this feature with other title features.

Constant Value: 7 (0x00000007)

public static final int FEATURE_INDETERMINATE_PROGRESS

Since: API Level 1

Flag for indeterminate progress

Constant Value: 5 (0x00000005)

public static final int FEATURE_LEFT_ICON

Since: API Level 1

Flag for having an icon on the left side of the title bar

Constant Value: 3 (0x00000003)

public static final int FEATURE_NO_TITLE

Since: API Level 1

Flag for the "no title" feature, turning off the title at the top of the screen.

Constant Value: 1 (0x00000001)

public static final int FEATURE_OPTIONS_PANEL

Since: API Level 1

Flag for the "options panel" feature. This is enabled by default.

Constant Value: 0 (0x00000000)

public static final int FEATURE_PROGRESS

Since: API Level 1

Flag for the progress indicator feature

Constant Value: 2 (0x00000002)

public static final int FEATURE_RIGHT_ICON

Since: API Level 1

Flag for having an icon on the right side of the title bar

Constant Value: 4 (0x00000004)

public static final int ID_ANDROID_CONTENT

Since: API Level 1

The ID that the main layout in the XML layout file should have.

Constant Value: 16908290 (0x01020002)

public static final int PROGRESS_END

Since: API Level 1

Ending value for the (primary) progress

Constant Value: 10000 (0x00002710)

public static final int PROGRESS_INDETERMINATE_OFF

Since: API Level 1

Flag for setting the progress bar's indeterminate mode off

Constant Value: -4 (0xfffffffc)

public static final int PROGRESS_INDETERMINATE_ON

Since: API Level 1

Flag for setting the progress bar's indeterminate mode on

Constant Value: -3 (0xfffffffd)

public static final int PROGRESS_SECONDARY_END

Since: API Level 1

Highest possible value for the secondary progress

Constant Value: 30000 (0x00007530)

public static final int PROGRESS_SECONDARY_START

Since: API Level 1

Lowest possible value for the secondary progress

Constant Value: 20000 (0x00004e20)

public static final int PROGRESS_START

Since: API Level 1

Starting value for the (primary) progress

Constant Value: 0 (0x00000000)

public static final int PROGRESS_VISIBILITY_OFF

Since: API Level 1

Flag for setting the progress bar's visibility to GONE

Constant Value: -2 (0xfffffffe)

public static final int PROGRESS_VISIBILITY_ON

Since: API Level 1

Flag for setting the progress bar's visibility to VISIBLE

Constant Value: -1 (0xffffffff)

Public Constructors

public Window (Context context)

Since: API Level 1

Public Methods

public abstract void addContentView (View view, ViewGroup.LayoutParams params)

Since: API Level 1

Variation on setContentView(View, android.view.ViewGroup.LayoutParams) to add an additional content view to the screen. Added after any existing ones in the screen -- existing views are NOT removed.

Parameters
view The desired content to display.
params Layout parameters for the view.

public void addFlags (int flags)

Since: API Level 1

Convenience function to set the flag bits as specified in flags, as per setFlags(int, int).

Parameters
flags The flag bits to be set.

public void clearFlags (int flags)

Since: API Level 1

Convenience function to clear the flag bits as specified in flags, as per setFlags(int, int).

Parameters
flags The flag bits to be cleared.

public abstract void closeAllPanels ()

Since: API Level 1

public abstract void closePanel (int featureId)

Since: API Level 1

public View findViewById (int id)

Since: API Level 1

Finds a view that was identified by the id attribute from the XML that was processed in onCreate(Bundle). This will implicitly call getDecorView() for you, with all of the associated side-effects.

Returns
  • The view if found or null otherwise.

public final WindowManager.LayoutParams getAttributes ()

Since: API Level 1

Retrieve the current window attributes associated with this panel.

Returns
  • WindowManager.LayoutParams Either the existing window attributes object, or a freshly created one if there is none.

public final Window.Callback getCallback ()

Since: API Level 1

Return the current Callback interface for this window.

public final Window getContainer ()

Since: API Level 1

Return the container for this Window.

Returns
  • Window The containing window, or null if this is a top-level window.

public final Context getContext ()

Since: API Level 1

Return the Context this window policy is running in, for retrieving resources and other information.

Returns
  • Context The Context that was supplied to the constructor.

public abstract View getCurrentFocus ()

Since: API Level 1

Return the view in this Window that currently has focus, or null if there are none. Note that this does not look in any containing Window.

Returns
  • View The current View with focus or null.

public abstract View getDecorView ()

Since: API Level 1

Retrieve the top-level window decor view (containing the standard window frame/decorations and the client's content inside of that), which can be added as a window to the window manager.

Note that calling this function for the first time "locks in" various window characteristics as described in setContentView(View, android.view.ViewGroup.LayoutParams).

Returns
  • Returns the top-level window decor view.

public abstract LayoutInflater getLayoutInflater ()

Since: API Level 1

Quick access to the LayoutInflater instance that this Window retrieved from its Context.

Returns
  • LayoutInflater The shared LayoutInflater.

public abstract int getVolumeControlStream ()

Since: API Level 1

public WindowManager getWindowManager ()

Since: API Level 1

Return the window manager allowing this Window to display its own windows.

Returns
  • WindowManager The ViewManager.

public final TypedArray getWindowStyle ()

Since: API Level 1

Return the Window attributes from this window's theme.

public final boolean hasChildren ()

Since: API Level 1

public final boolean isActive ()

Since: API Level 1

public abstract boolean isFloating ()

Since: API Level 1

Return whether this window is being displayed with a floating style (based on the windowIsFloating attribute in the style/theme).

Returns
  • Returns true if the window is configured to be displayed floating on top of whatever is behind it.

public abstract boolean isShortcutKey (int keyCode, KeyEvent event)

Since: API Level 1

Is a keypress one of the defined shortcut keys for this window.

Parameters
keyCode the key code from KeyEvent to check.
event the KeyEvent to use to help check.

public final void makeActive ()

Since: API Level 1

public abstract void onConfigurationChanged (Configuration newConfig)

Since: API Level 1

Should be called when the configuration is changed.

Parameters
newConfig The new configuration.

public abstract void openPanel (int featureId, KeyEvent event)

Since: API Level 1

public abstract View peekDecorView ()

Since: API Level 1

Retrieve the current decor view, but only if it has already been created; otherwise returns null.

Returns
  • Returns the top-level window decor or null.
See Also

public abstract boolean performContextMenuIdentifierAction (int id, int flags)

Since: API Level 1

public abstract boolean performPanelIdentifierAction (int featureId, int id, int flags)

Since: API Level 1

public abstract boolean performPanelShortcut (int featureId, int keyCode, KeyEvent event, int flags)

Since: API Level 1

public boolean requestFeature (int featureId)

Since: API Level 1

Enable extended screen features. This must be called before setContentView(). May be called as many times as desired as long as it is before setContentView(). If not called, no extended features will be available. You can not turn off a feature once it is requested. You canot use other title features with FEATURE_CUSTOM_TITLE.

Parameters
featureId The desired features, defined as constants by Window.
Returns
  • The features that are now set.

public abstract void restoreHierarchyState (Bundle savedInstanceState)

Since: API Level 1

public abstract Bundle saveHierarchyState ()

Since: API Level 1

public void setAttributes (WindowManager.LayoutParams a)

Since: API Level 1

Specify custom window attributes. PLEASE NOTE: the layout params you give here should generally be from values previously retrieved with getAttributes(); you probably do not want to blindly create and apply your own, since this will blow away any values set by the framework that you are not interested in.

Parameters
a The new window attributes, which will completely override any current values.

public abstract void setBackgroundDrawable (Drawable drawable)

Since: API Level 1

Change the background of this window to a custom Drawable. Setting the background to null will make the window be opaque. To make the window transparent, you can use an empty drawable (for instance a ColorDrawable with the color 0 or the system drawable android:drawable/empty.)

Parameters
drawable The new Drawable to use for this window's background.

public void setBackgroundDrawableResource (int resid)

Since: API Level 1

Change the background of this window to a Drawable resource. Setting the background to null will make the window be opaque. To make the window transparent, you can use an empty drawable (for instance a ColorDrawable with the color 0 or the system drawable android:drawable/empty.)

Parameters
resid The resource identifier of a drawable resource which will be installed as the new background.

public void setCallback (Window.Callback callback)

Since: API Level 1

Set the Callback interface for this window, used to intercept key events and other dynamic operations in the window.

Parameters
callback The desired Callback interface.

public abstract void setChildDrawable (int featureId, Drawable drawable)

Since: API Level 1

public abstract void setChildInt (int featureId, int value)

Since: API Level 1

public void setContainer (Window container)

Since: API Level 1

Set the container for this window. If not set, the DecorWindow operates as a top-level window; otherwise, it negotiates with the container to display itself appropriately.

Parameters
container The desired containing Window.

public abstract void setContentView (View view)

Since: API Level 1

Convenience for setContentView(View, android.view.ViewGroup.LayoutParams) set the screen content to an explicit view. This view is placed directly into the screen's view hierarchy. It can itself be a complex view hierarhcy.

Parameters
view The desired content to display.

public abstract void setContentView (int layoutResID)

Since: API Level 1

Convenience for setContentView(View, android.view.ViewGroup.LayoutParams) to set the screen content from a layout resource. The resource will be inflated, adding all top-level views to the screen.

Parameters
layoutResID Resource ID to be inflated.

public abstract void setContentView (View view, ViewGroup.LayoutParams params)

Since: API Level 1

Set the screen content to an explicit view. This view is placed directly into the screen's view hierarchy. It can itself be a complex view hierarchy.

Note that calling this function "locks in" various characteristics of the window that can not, from this point forward, be changed: the features that have been requested with requestFeature(int), and certain window flags as described in setFlags(int, int).

Parameters
view The desired content to display.
params Layout parameters for the view.

public abstract void setFeatureDrawable (int featureId, Drawable drawable)

Since: API Level 1

Set an explicit Drawable value for feature of this window. You must have called requestFeature(featureId) before calling this function.

Parameters
featureId The desired drawable feature to change. Features are constants defined by Window.
drawable A Drawable object to display.

public abstract void setFeatureDrawableAlpha (int featureId, int alpha)

Since: API Level 1

Set a custom alpha value for the given drawale feature, controlling how much the background is visible through it.

Parameters
featureId The desired drawable feature to change. Features are constants defined by Window.
alpha The alpha amount, 0 is completely transparent and 255 is completely opaque.

public abstract void setFeatureDrawableResource (int featureId, int resId)

Since: API Level 1

Set the value for a drawable feature of this window, from a resource identifier. You must have called requestFeauture(featureId) before calling this function.

Parameters
featureId The desired drawable feature to change, defined as a constant by Window.
resId Resource identifier of the desired image.
See Also

public abstract void setFeatureDrawableUri (int featureId, Uri uri)

Since: API Level 1

Set the value for a drawable feature of this window, from a URI. You must have called requestFeature(featureId) before calling this function.

The only URI currently supported is "content:", specifying an image in a content provider.

Parameters
featureId The desired drawable feature to change. Features are constants defined by Window.
uri The desired URI.
See Also

public abstract void setFeatureInt (int featureId, int value)

Since: API Level 1

Set the integer value for a feature. The range of the value depends on the feature being set. For FEATURE_PROGRESSS, it should go from 0 to 10000. At 10000 the progress is complete and the indicator hidden.

Parameters
featureId The desired feature to change. Features are constants defined by Window.
value The value for the feature. The interpretation of this value is feature-specific.

public void setFlags (int flags, int mask)

Since: API Level 1

Set the flags of the window, as per the WindowManager.LayoutParams flags.

Note that some flags must be set before the window decoration is created (by the first call to setContentView(View, android.view.ViewGroup.LayoutParams) or getDecorView(): FLAG_LAYOUT_IN_SCREEN and FLAG_LAYOUT_INSET_DECOR. These will be set for you based on the windowIsFloating attribute.

Parameters
flags The new window flags (see WindowManager.LayoutParams).
mask Which of the window flag bits to modify.

public void setFormat (int format)

Since: API Level 1

Set the format of window, as per the PixelFormat types. This overrides the default format that is selected by the Window based on its window decorations.

Parameters
format The new window format (see PixelFormat). Use PixelFormat.UNKNOWN to allow the Window to select the format.
See Also

public void setGravity (int gravity)

Since: API Level 1

Set the gravity of the window, as per the Gravity constants. This controls how the window manager is positioned in the overall window; it is only useful when using WRAP_CONTENT for the layout width or height.

Parameters
gravity The desired gravity constant.

public void setLayout (int width, int height)

Since: API Level 1

Set the width and height layout parameters of the window. The default for both of these is MATCH_PARENT; you can change them to WRAP_CONTENT to make a window that is not full-screen.

Parameters
width The desired layout width of the window.
height The desired layout height of the window.

public void setSoftInputMode (int mode)

Since: API Level 3

Specify an explicit soft input mode to use for the window, as per WindowManager.LayoutParams.softInputMode. Providing anything besides "unspecified" here will override the input mode the window would normally retrieve from its theme.

public abstract void setTitle (CharSequence title)

Since: API Level 1

public abstract void setTitleColor (int textColor)

Since: API Level 1

public void setType (int type)

Since: API Level 1

Set the type of the window, as per the WindowManager.LayoutParams types.

Parameters
type The new window type (see WindowManager.LayoutParams).

public abstract void setVolumeControlStream (int streamType)

Since: API Level 1

public void setWindowAnimations (int resId)

Since: API Level 3

Specify custom animations to use for the window, as per WindowManager.LayoutParams.windowAnimations. Providing anything besides 0 here will override the animations the window would normally retrieve from its theme.

public void setWindowManager (WindowManager wm, IBinder appToken, String appName)

Since: API Level 1

Set the window manager for use by this Window to, for example, display panels. This is not used for displaying the Window itself -- that must be done by the client.

Parameters
wm The ViewManager for adding new windows.

public abstract boolean superDispatchKeyEvent (KeyEvent event)

Since: API Level 1

Used by custom windows, such as Dialog, to pass the key press event further down the view hierarchy. Application developers should not need to implement or call this.

public abstract boolean superDispatchTouchEvent (MotionEvent event)

Since: API Level 1

Used by custom windows, such as Dialog, to pass the touch screen event further down the view hierarchy. Application developers should not need to implement or call this.

public abstract boolean superDispatchTrackballEvent (MotionEvent event)

Since: API Level 1

Used by custom windows, such as Dialog, to pass the trackball event further down the view hierarchy. Application developers should not need to implement or call this.

public abstract void takeInputQueue (InputQueue.Callback callback)

Since: API Level 9

Take ownership of this window's InputQueue. The window will no longer read and dispatch input events from the queue; it is your responsibility to do so.

public abstract void takeKeyEvents (boolean get)

Since: API Level 1

Request that key events come to this activity. Use this if your activity has no views with focus, but the activity still wants a chance to process key events.

public abstract void takeSurface (SurfaceHolder.Callback2 callback)

Since: API Level 9

Take ownership of this window's surface. The window's view hierarchy will no longer draw into the surface, though it will otherwise continue to operate (such as for receiving input events). The given SurfaceHolder callback will be used to tell you about state changes to the surface.

public abstract void togglePanel (int featureId, KeyEvent event)

Since: API Level 1

Protected Methods

protected final int getFeatures ()

Since: API Level 1

Return the feature bits that are enabled. This is the set of features that were given to requestFeature(), and are being handled by this Window itself or its container. That is, it is the set of requested features that you can actually use.

To do: add a public version of this API that allows you to check for features by their feature ID.

Returns
  • int The feature bits.

protected final int getForcedWindowFlags ()

Since: API Level 1

Return the window flags that have been explicitly set by the client, so will not be modified by getDecorView().

protected final int getLocalFeatures ()

Since: API Level 1

Return the feature bits that are being implemented by this Window. This is the set of features that were given to requestFeature(), and are being handled by only this Window itself, not by its containers.

Returns
  • int The feature bits.

protected final boolean hasSoftInputMode ()

Since: API Level 3

Has the app specified their own soft input mode?

protected abstract void onActive ()

Since: API Level 1

protected void setDefaultWindowFormat (int format)

Since: API Level 1

Set the default format of window, as per the PixelFormat types. This is the format that will be used unless the client specifies in explicit format with setFormat();

Parameters
format The new window format (see PixelFormat).