WindowMetrics
class WindowMetrics
kotlin.Any | |
↳ | android.view.WindowMetrics |
Metrics about a Window, consisting of the bounds and WindowInsets
.
This is usually obtained from WindowManager.getCurrentWindowMetrics()
and WindowManager.getMaximumWindowMetrics()
.
android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE
, it also provides density.
Obtains Window Dimensions in Density-independent Pixel(DP)
While getDensity()
is provided, the dimension in density-independent pixel could also be calculated with WindowMetrics
properties, which is similar to android.content.res.Configuration#screenWidthDp
float widthInDp = windowMetrics.getBounds().width() / windowMetrics.getDensity(); float heightInDp = windowMetrics.getBounds().height() / windowMetrics.getDensity();
float densityDp = DisplayMetrics.DENSITY_DEFAULT * windowMetrics.getDensity();
Summary
Public constructors | |
---|---|
WindowMetrics(bounds: Rect, windowInsets: WindowInsets) |
|
WindowMetrics(bounds: Rect, windowInsets: WindowInsets, density: Float) The constructor to create a |
Public methods | |
---|---|
Rect |
Returns the bounds of the area associated with this window or |
Float |
Returns the density of the area associated with this window or |
WindowInsets |
Returns the |
String |
toString() |
Public constructors
WindowMetrics
WindowMetrics(
bounds: Rect,
windowInsets: WindowInsets)
Deprecated: use WindowMetrics(android.graphics.Rect,android.view.WindowInsets,float)
instead.
Parameters | |
---|---|
bounds |
Rect: This value cannot be null . |
windowInsets |
WindowInsets: This value cannot be null . |
WindowMetrics
WindowMetrics(
bounds: Rect,
windowInsets: WindowInsets,
density: Float)
The constructor to create a WindowMetrics
instance.
Note that in most cases WindowMetrics
is obtained from WindowManager.getCurrentWindowMetrics()
or WindowManager.getMaximumWindowMetrics()
.
Parameters | |
---|---|
bounds |
Rect: The window bounds This value cannot be null . |
windowInsets |
WindowInsets: The WindowInsets of the window This value cannot be null . |
density |
Float: The window density |
Public methods
getBounds
fun getBounds(): Rect
Returns the bounds of the area associated with this window or UiContext
.
Note that the size of the reported bounds can have different size than Display.getSize(Point)
based on your target API level and calling context. This method reports the window size including all system bar areas, while Display.getSize(Point)
can report the area excluding navigation bars and display cutout areas depending on the calling context and target SDK level. Please refer to Display.getSize(Point)
for details.
The following code snippet shows how to get the bounds excluding navigation bars and display cutout:
final WindowMetrics metrics = windowManager.getCurrentWindowMetrics(); // Gets all excluding insets final WindowInsets windowInsets = metrics.getWindowInsets(); Insets insets = windowInsets.getInsetsIgnoringVisibility(WindowInsets.Type.navigationBars() | WindowInsets.Type.displayCutout()); int insetsWidth = insets.right + insets.left; int insetsHeight = insets.top + insets.bottom; // Legacy size that Display#getSize reports final Rect bounds = metrics.getBounds(); final Size legacySize = new Size(bounds.width() - insetsWidth, bounds.height() - insetsHeight);
Return | |
---|---|
Rect |
window bounds in pixels. This value cannot be null . |
getDensity
fun getDensity(): Float
Returns the density of the area associated with this window or UiContext
, which uses the same units as android.util.DisplayMetrics#density
.
getWindowInsets
fun getWindowInsets(): WindowInsets
Returns the WindowInsets
of the area associated with this window or UiContext
.
Return | |
---|---|
WindowInsets |
the WindowInsets of the visual area. This value cannot be null . |
toString
fun toString(): String
Return | |
---|---|
String |
a string representation of the object. |