Package icyllis.modernui.view
Class MeasureSpec
java.lang.Object
icyllis.modernui.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 comprises 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.
MeasureSpecs are implemented as ints to reduce object allocation. This class is provided to pack and unpack the <size, mode> tuple into the int.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Measure specification mode: The child can be as large as it wants up to the specified size.static final int
Measure specification mode: The parent has determined an exact size for the child.static final int
Measure specification mode: The parent has not imposed any constraint on the child. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic 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.
-
Field Details
-
UNSPECIFIED
public static final int UNSPECIFIEDMeasure specification mode: The parent has not imposed any constraint on the child. It can be whatever size it wants.- See Also:
-
EXACTLY
public static final int EXACTLYMeasure 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.- See Also:
-
AT_MOST
public static final int AT_MOSTMeasure specification mode: The child can be as large as it wants up to the specified size.- See Also:
-
-
Constructor Details
-
MeasureSpec
public MeasureSpec()
-
-
Method Details
-
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:
- Parameters:
size
- the size of the measure specificationmode
- the mode of the measure specification- Returns:
- the measure specification based on size and mode
-
getSize
public static int getSize(int measureSpec) Extracts the size from the supplied measure specification.- Parameters:
measureSpec
- the measure specification to extract the size from- Returns:
- the size in pixels defined in the supplied measure specification
-
getMode
public static int getMode(int measureSpec) Extracts the mode from the supplied measure specification.- Parameters:
measureSpec
- the measure specification to extract from- Returns:
- the mode of the measure specification
-
toString
Returns a String representation of the specified measure specification.- Parameters:
measureSpec
- the measure specification to convert to a String- Returns:
- a String with the following format: "MeasureSpec: MODE SIZE"
-