Merge "Update docs for ColorStateList to include alpha" into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5bcf7650b4
@@ -46,29 +46,81 @@ import java.util.Arrays;
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Lets you map {@link android.view.View} state sets to colors.
|
* Lets you map {@link android.view.View} state sets to colors.
|
||||||
*
|
* <p>
|
||||||
* {@link android.content.res.ColorStateList}s are created from XML resource files defined in the
|
* {@link android.content.res.ColorStateList}s are created from XML resource files defined in the
|
||||||
* "color" subdirectory directory of an application's resource directory. The XML file contains
|
* "color" subdirectory directory of an application's resource directory. The XML file contains
|
||||||
* a single "selector" element with a number of "item" elements inside. For example:
|
* a single "selector" element with a number of "item" elements inside. For example:
|
||||||
*
|
|
||||||
* <pre>
|
* <pre>
|
||||||
* <selector xmlns:android="http://schemas.android.com/apk/res/android">
|
* <selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
* <item android:state_focused="true" android:color="@color/testcolor1"/>
|
* <item android:state_focused="true"
|
||||||
* <item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" />
|
* android:color="@color/sample_focused" />
|
||||||
* <item android:state_enabled="false" android:color="@color/testcolor3" />
|
* <item android:state_pressed="true"
|
||||||
* <item android:color="@color/testcolor5"/>
|
* android:state_enabled="false"
|
||||||
|
* android:color="@color/sample_disabled_pressed" />
|
||||||
|
* <item android:state_enabled="false"
|
||||||
|
* android:color="@color/sample_disabled_not_pressed" />
|
||||||
|
* <item android:color="@color/sample_default" />
|
||||||
* </selector>
|
* </selector>
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* This defines a set of state spec / color pairs where each state spec specifies a set of
|
* This defines a set of state spec / color pairs where each state spec specifies a set of
|
||||||
* states that a view must either be in or not be in and the color specifies the color associated
|
* states that a view must either be in or not be in and the color specifies the color associated
|
||||||
* with that spec. The list of state specs will be processed in order of the items in the XML file.
|
* with that spec.
|
||||||
* An item with no state spec is considered to match any set of states and is generally useful as
|
*
|
||||||
* a final item to be used as a default. Note that if you have such an item before any other items
|
* <a name="StateSpec"></a>
|
||||||
* in the list then any subsequent items will end up being ignored.
|
* <h3>State specs</h3>
|
||||||
* <p>For more information, see the guide to <a
|
* <p>
|
||||||
* href="{@docRoot}guide/topics/resources/color-list-resource.html">Color State
|
* Each item defines a set of state spec and color pairs, where the state spec is a series of
|
||||||
* List Resource</a>.</p>
|
* attributes set to either {@code true} or {@code false} to represent inclusion or exclusion. If
|
||||||
|
* an attribute is not specified for an item, it may be any value.
|
||||||
|
* <p>
|
||||||
|
* For example, the following item will be matched whenever the focused state is set; any other
|
||||||
|
* states may be set or unset:
|
||||||
|
* <pre>
|
||||||
|
* <item android:state_focused="true"
|
||||||
|
* android:color="@color/sample_focused" />
|
||||||
|
* </pre>
|
||||||
|
* <p>
|
||||||
|
* Typically, a color state list will reference framework-defined state attributes such as
|
||||||
|
* {@link android.R.attr#state_focused android:state_focused} or
|
||||||
|
* {@link android.R.attr#state_enabled android:state_enabled}; however, app-defined attributes may
|
||||||
|
* also be used.
|
||||||
|
* <p>
|
||||||
|
* <strong>Note:</strong> The list of state specs will be matched against in the order that they
|
||||||
|
* appear in the XML file. For this reason, more-specific items should be placed earlier in the
|
||||||
|
* file. An item with no state spec is considered to match any set of states and is generally
|
||||||
|
* useful as a final item to be used as a default.
|
||||||
|
* <p>
|
||||||
|
* If an item with no state spec if placed before other items, those items
|
||||||
|
* will be ignored.
|
||||||
|
*
|
||||||
|
* <a name="ItemAttributes"></a>
|
||||||
|
* <h3>Item attributes</h3>
|
||||||
|
* <p>
|
||||||
|
* Each item must define an {@link android.R.attr#color android:color} attribute, which may be
|
||||||
|
* an HTML-style hex color, a reference to a color resource, or -- in API 23 and above -- a theme
|
||||||
|
* attribute that resolves to a color.
|
||||||
|
* <p>
|
||||||
|
* Starting with API 23, items may optionally define an {@link android.R.attr#alpha android:alpha}
|
||||||
|
* attribute to modify the base color's opacity. This attribute takes a either floating-point value
|
||||||
|
* between 0 and 1 or a theme attribute that resolves as such. The item's overall color is
|
||||||
|
* calculated by multiplying by the base color's alpha channel by the {@code alpha} value. For
|
||||||
|
* example, the following item represents the theme's accent color at 50% opacity:
|
||||||
|
* <pre>
|
||||||
|
* <item android:state_enabled="false"
|
||||||
|
* android:color="?android:attr/colorAccent"
|
||||||
|
* android:alpha="0.5" />
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* <a name="DeveloperGuide"></a>
|
||||||
|
* <h3>Developer guide</h3>
|
||||||
|
* <p>
|
||||||
|
* For more information, see the guide to
|
||||||
|
* <a href="{@docRoot}guide/topics/resources/color-list-resource.html">Color State
|
||||||
|
* List Resource</a>.
|
||||||
|
*
|
||||||
|
* @attr ref android.R.styleable#ColorStateListItem_alpha
|
||||||
|
* @attr ref android.R.styleable#ColorStateListItem_color
|
||||||
*/
|
*/
|
||||||
public class ColorStateList extends ComplexColor implements Parcelable {
|
public class ColorStateList extends ComplexColor implements Parcelable {
|
||||||
private static final String TAG = "ColorStateList";
|
private static final String TAG = "ColorStateList";
|
||||||
|
|||||||
Reference in New Issue
Block a user