View.MeasureSpec
public
static
class
View.MeasureSpec
extends Object
java.lang.Object | |
↳ | android.view.View.MeasureSpec |
A MeasureSpec encapsulates the layout requirements passed from parent to child. Each MeasureSpec represents a requirement for either the width or the height. A MeasureSpec is comprised of a size and a mode. There are three possible modes:
- UNSPECIFIED
- The parent has not imposed any constraint on the child. It can be whatever size it wants.
- EXACTLY
- The parent has determined an exact size for the child. The child is going to be given those bounds regardless of how big it wants to be.
- AT_MOST
- The child can be as large as it wants up to the specified size.
Summary
Constants | |
---|---|
int |
AT_MOST
Measure specification mode: The child can be as large as it wants up to the specified size. |
int |
EXACTLY
Measure specification mode: The parent has determined an exact size for the child. |
int |
UNSPECIFIED
Measure specification mode: The parent has not imposed any constraint on the child. |
Public constructors | |
---|---|
MeasureSpec()
|
Public methods | |
---|---|
static
int
|
getMode(int measureSpec)
Extracts the mode from the supplied measure specification. |
static
int
|
getSize(int measureSpec)
Extracts the size from the supplied measure specification. |
static
int
|
makeMeasureSpec(int size, int mode)
Creates a measure specification based on the supplied size and mode. |
static
String
|
toString(int measureSpec)
Returns a String representation of the specified measure specification. |
Inherited methods | |
---|---|
Constants
AT_MOST
public static final int AT_MOST
Measure specification mode: The child can be as large as it wants up to the specified size.
Constant Value: -2147483648 (0x80000000)
EXACTLY
public static final int EXACTLY
Measure specification mode: The parent has determined an exact size for the child. The child is going to be given those bounds regardless of how big it wants to be.
Constant Value: 1073741824 (0x40000000)
UNSPECIFIED
public static final int UNSPECIFIED
Measure specification mode: The parent has not imposed any constraint on the child. It can be whatever size it wants.
Constant Value: 0 (0x00000000)
Public constructors
MeasureSpec
public MeasureSpec ()
Public methods
getMode
public static int getMode (int measureSpec)
Extracts the mode from the supplied measure specification.
Parameters | |
---|---|
measureSpec |
int : the measure specification to extract the mode from |
Returns | |
---|---|
int |
UNSPECIFIED ,
AT_MOST or
EXACTLY
Value is UNSPECIFIED , EXACTLY , or AT_MOST |
getSize
public static int getSize (int measureSpec)
Extracts the size from the supplied measure specification.
Parameters | |
---|---|
measureSpec |
int : the measure specification to extract the size from |
Returns | |
---|---|
int |
the size in pixels defined in the supplied measure specification |
makeMeasureSpec
public static int makeMeasureSpec (int size, int mode)
Creates a measure specification based on the supplied size and mode. The mode must always be one of the following:
Note: On API level 17 and lower, makeMeasureSpec's
implementation was such that the order of arguments did not matter
and overflow in either value could impact the resulting MeasureSpec.
RelativeLayout
was affected by this bug.
Apps targeting API levels greater than 17 will get the fixed, more strict
behavior.
Parameters | |
---|---|
size |
int : the size of the measure specification
Value is between 0 and (1 << MeasureSpec.MODE_SHIFT) - 1 inclusive |
mode |
int : the mode of the measure specification
Value is UNSPECIFIED , EXACTLY , or AT_MOST |
Returns | |
---|---|
int |
the measure specification based on size and mode |
toString
public static String toString (int measureSpec)
Returns a String representation of the specified measure specification.
Parameters | |
---|---|
measureSpec |
int : the measure specification to convert to a String |
Returns | |
---|---|
String |
a String with the following format: "MeasureSpec: MODE SIZE" |