public final class Resources.Theme
extends Object
java.lang.Object | |
↳ | android.content.res.Resources.Theme |
该类保存特定主题的当前属性值。 换句话说,主题是资源属性的一组值; 这些与TypedArray
结合使用来解析属性的最终值。
主题的属性以两种方式发挥作用:(1)样式属性可以通过“?themeAttribute”语法显式引用主题中的值; (2)如果没有为特定的样式属性定义值,作为最后的手段,我们将尝试在主题中找到该属性的值。
您通常会使用 obtainStyledAttributes(AttributeSet, int[], int, int)
API来检索应用了样式和主题信息的XML属性。
Public methods |
|
---|---|
void |
applyStyle(int resId, boolean force) 将新的属性值放入主题中。 |
void |
dump(int priority, String tag, String prefix) 将此主题的内容打印到日志中。 |
int |
getChangingConfigurations() 返回将影响此主题的配置更改的位掩码(因此需要完全重新加载它)。 |
Drawable |
getDrawable(int id) 返回与特定资源ID关联的可绘制对象并为该主题设置风格。 |
Resources |
getResources() 返回此主题所属的资源。 |
TypedArray |
obtainStyledAttributes(AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) 返回一个TypedArray,其中包含 attrs中列出的 集合中的属性值。 |
TypedArray |
obtainStyledAttributes(int[] attrs) 返回一个TypedArray,它包含由 attrs中列出的 Theme定义的值。 |
TypedArray |
obtainStyledAttributes(int resId, int[] attrs) 返回一个TypedArray持有其在上市 ATTRS风格 渣油资源定义的值。 |
boolean |
resolveAttribute(int resid, TypedValue outValue, boolean resolveRefs) 检索主题中属性的值。 |
void |
setTo(Resources.Theme other) 设置此主题以保持与主题 其他内容相同的内容。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
void applyStyle (int resId, boolean force)
将新的属性值放入主题中。 由resid指定的样式资源将从该主题的资源中检索,其值将放置到Theme对象中。
此函数的语义取决于force参数:如果为false,则只会从主题中复制未在主题中定义的值; 否则,如果任何样式的属性已经在主题中定义,主题中的当前值将被覆盖。
Parameters | |
---|---|
resId |
int : The resource ID of a style resource from which to obtain attribute values. |
force |
boolean : 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. |
void dump (int priority, String tag, String prefix)
将此主题的内容打印到日志中。 仅用于调试。
Parameters | |
---|---|
priority |
int : The log priority to use. |
tag |
String : The log tag to use. |
prefix |
String : Text to prefix each line printed. |
int getChangingConfigurations ()
返回将影响此主题的配置更改的位掩码(因此需要完全重新加载它)。
Returns | |
---|---|
int |
a bit mask of configuration changes, as defined by ActivityInfo |
也可以看看:
Drawable getDrawable (int id)
返回与特定资源ID关联的可绘制对象并为该主题设置风格。
Parameters | |
---|---|
id |
int : The desired resource identifier, as generated by the aapt tool. This integer encodes the package, type, and resource entry. The value 0 is an invalid identifier. |
Returns | |
---|---|
Drawable |
Drawable An object that can be used to draw this resource. |
Throws | |
---|---|
Resources.NotFoundException |
Throws NotFoundException if the given ID does not exist. |
Resources getResources ()
返回此主题所属的资源。
Returns | |
---|---|
Resources |
Resources to which this theme belongs. |
TypedArray obtainStyledAttributes (AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes)
返回一个TypedArray,其中包含attrs中列出的集合中的属性值。 另外,如果给定的AttributeSet指定一个样式类(通过“样式”属性),该样式将被应用在它定义的基本属性之上。
当您完成阵列时,请务必致电 TypedArray.recycle()
。
当确定一个特定属性的最终值时,有四个输入参与进来:
这些输入中的每一个都按顺序考虑,列出的第一个输入优先于下列输入。 换句话说,如果在AttributeSet中提供了<Button textColor="#ff000000">
,那么无论任何样式中指定了什么,该按钮的文本将始终为黑色。
Parameters | |
---|---|
set |
AttributeSet : The base set of attribute values. May be null. |
attrs |
int : The desired attributes to be retrieved. |
defStyleAttr |
int : An attribute in the current theme that contains a reference to a style resource that supplies defaults values for the TypedArray. Can be 0 to not look for defaults. |
defStyleRes |
int : A resource identifier of a style resource that supplies default values for the TypedArray, used only if defStyleAttr is 0 or can not be found in the theme. Can be 0 to not look for defaults. |
Returns | |
---|---|
TypedArray |
Returns a TypedArray holding an array of the attribute values. Be sure to call TypedArray.recycle() when done with it. |
TypedArray obtainStyledAttributes (int[] attrs)
返回一个TypedArray,它包含由 attrs中列出的 Theme定义的值。
当您完成阵列时,请务必致电 TypedArray.recycle()
。
Parameters | |
---|---|
attrs |
int : The desired attributes. |
Returns | |
---|---|
TypedArray |
Returns a TypedArray holding an array of the attribute values. Be sure to call TypedArray.recycle() when done with it. |
Throws | |
---|---|
Resources.NotFoundException |
Throws NotFoundException if the given ID does not exist. |
TypedArray obtainStyledAttributes (int resId, int[] attrs)
返回一个TypedArray持有其在上市 ATTRS风格 渣油资源定义的值。
当您完成阵列时,请务必致电 TypedArray.recycle()
。
Parameters | |
---|---|
resId |
int : The desired style resource. |
attrs |
int : The desired attributes in the style. |
Returns | |
---|---|
TypedArray |
Returns a TypedArray holding an array of the attribute values. Be sure to call TypedArray.recycle() when done with it. |
Throws | |
---|---|
Resources.NotFoundException |
Throws NotFoundException if the given ID does not exist. |
boolean resolveAttribute (int resid, TypedValue outValue, boolean resolveRefs)
检索主题中属性的值。 outValue的内容最终由getValue(int, TypedValue, boolean)
。
Parameters | |
---|---|
resid |
int : The resource identifier of the desired theme attribute. |
outValue |
TypedValue : Filled in with the ultimate resource value supplied by the attribute. |
resolveRefs |
boolean : 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 |
boolean Returns true if the attribute was found and outValue is valid, else false. |
void setTo (Resources.Theme other)
设置此主题以保持与主题其他内容相同的内容。 如果这两个主题都来自相同的资源对象,则在此函数返回后它们将相同。 如果他们来自不同的资源,那么只有他们共同拥有的资源将被设置在这个主题中。
Parameters | |
---|---|
other |
Resources.Theme : The existing Theme to copy from. |