android.content.res
public
final
class
android.content.res.Resources.Theme
This class holds the current attribute values for a particular theme.
In other words, a Theme is a set of values for resource attributes;
these are used in conjunction with TypedArray
to resolve the final value for an attribute.
The Theme's attributes come into play in two ways: (1) a styled
attribute can explicit reference a value in the theme through the
"?themeAttribute" syntax; (2) if no value has been defined for a
particular styled attribute, as a last resort we will try to find that
attribute's value in the Theme.
You will normally use the obtainStyledAttributes(AttributeSet, int[], int, int) APIs to
retrieve XML attributes with style and theme information applied.
Summary
Public Methods
Protected Methods
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
Public Methods
public
void
applyStyle(int resid, boolean force)
Place new attribute values into the theme. The style resource
specified by
resid will be retrieved from this Theme's
resources, its values placed into the Theme object.
The semantics of this function depends on the force
argument: If false, only values that are not already defined in
the theme will be copied from the system resource; otherwise, if
any of the style's attributes are already defined in the theme, the
current values in the theme will be overwritten.
Parameters
resid
| The resource ID of a style resource from which to
obtain attribute values. |
force
| If true, values in the style resource will always be
used in the theme; otherwise, they will only be used
if not already defined in the theme.
|
public
void
dump(int priority, String tag, String prefix)
Print contents of this theme out to the log. For debugging only.
Parameters
priority
| The log priority to use. |
tag
| The log tag to use. |
prefix
| Text to prefix each line printed.
|
public
TypedArray
obtainStyledAttributes(int resid, int[] attrs)
Return a StyledAttributes holding the values defined by the style
resource
resid which are listed in
attrs.
Be sure to call StyledAttributes.recycle() when you are done with
the array.
Parameters
resid
| The desired style resource. |
attrs
| The desired attributes in the style. |
Returns
- Returns a TypedArray holding an array of the attribute values.
Be sure to call TypedArray.recycle()
when done with it.
public
TypedArray
obtainStyledAttributes(int[] attrs)
Return a StyledAttributes holding the values defined by
Theme which are listed in
attrs.
Be sure to call StyledAttributes.recycle() when you are done with
the array.
Parameters
attrs
| The desired attributes. |
Returns
- Returns a TypedArray holding an array of the attribute values.
Be sure to call TypedArray.recycle()
when done with it.
public
TypedArray
obtainStyledAttributes(AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes)
Return a StyledAttributes holding the attribute values in
set
that are listed in
attrs. In addition, if the given
AttributeSet specifies a style class (through the "style" attribute),
that style will be applied on top of the base attributes it defines.
Be sure to call StyledAttributes.recycle() when you are done with
the array.
When determining the final value of a particular attribute, there
are four inputs that come into play:
- Any attribute values in the given AttributeSet.
- The style resource specified in the AttributeSet (named
"style").
- The default style specified by defStyleAttr and
defStyleRes
- The base values in this theme.
Each of these inputs is considered in-order, with the first listed
taking precedence over the following ones. In other words, if in the
AttributeSet you have supplied <Button
textColor="#ff000000">
, then the button's text will
always be black, regardless of what is specified in any of
the styles.
Parameters
set
| The base set of attribute values. May be null. |
attrs
| The desired attributes to be retrieved. |
defStyleAttr
| An attribute in the current theme that contains a
reference to a style resource that supplies
defaults values for the StyledAttributes. Can be
0 to not look for defaults. |
defStyleRes
| A resource identifier of a style resource that
supplies default values for the StyledAttributes,
used only if defStyleAttr is 0 or can not be found
in the theme. Can be 0 to not look for defaults. |
Returns
- Returns a TypedArray holding an array of the attribute values.
Be sure to call TypedArray.recycle()
when done with it.
public
boolean
resolveAttribute(int resid, TypedValue outValue, boolean resolveRefs)
Retrieve the value of an attribute in the Theme. The contents of
outValue are ultimately filled in by
getValue(int, TypedValue, boolean).
Parameters
resid
| The resource identifier of the desired theme
attribute. |
outValue
| Filled in with the ultimate resource value supplied
by the attribute. |
resolveRefs
| If true, resource references will be walked; if
false, outValue may be a
TYPE_REFERENCE. In either case, it will never
be a TYPE_ATTRIBUTE. |
Returns
- boolean Returns true if the attribute was found and
outValue is valid, else false.
Set this theme to hold the same contents as the theme
other. If both of these themes are from the same
Resources object, they will be identical after this function
returns. If they are from different Resources, only the resources
they have in common will be set in this theme.
Parameters
other
| The existing Theme to copy from.
|
Protected Methods
protected
void
finalize()
Called by the virtual machine when there are no longer any (non-weak)
references to the receiver. Subclasses can use this facility to guarantee
that any associated resources are cleaned up before the receiver is
garbage collected. Uncaught exceptions which are thrown during the
running of the method cause it to terminate immediately, but are
otherwise ignored.
Note: The virtual machine assumes that the implementation in class Object
is empty.