Most visited

Recently visited

Added in API level 1

Resources.Theme

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属性。

Summary

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

Public methods

applyStyle

Added in API level 1
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.

dump

Added in API level 1
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.

getChangingConfigurations

Added in API level 23
int getChangingConfigurations ()

返回将影响此主题的配置更改的位掩码(因此需要完全重新加载它)。

Returns
int a bit mask of configuration changes, as defined by ActivityInfo

也可以看看:

getDrawable

Added in API level 21
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.

getResources

Added in API level 21
Resources getResources ()

返回此主题所属的资源。

Returns
Resources Resources to which this theme belongs.

obtainStyledAttributes

Added in API level 1
TypedArray obtainStyledAttributes (AttributeSet set, 
                int[] attrs, 
                int defStyleAttr, 
                int defStyleRes)

返回一个TypedArray,其中包含attrs中列出的集合中的属性值。 另外,如果给定的AttributeSet指定一个样式类(通过“样式”属性),该样式将被应用在它定义的基本属性之上。

当您完成阵列时,请务必致电 TypedArray.recycle()

当确定一个特定属性的最终值时,有四个输入参与进来:

  1. Any attribute values in the given AttributeSet.
  2. The style resource specified in the AttributeSet (named "style").
  3. The default style specified by defStyleAttr and defStyleRes
  4. The base values in this theme.

这些输入中的每一个都按顺序考虑,列出的第一个输入优先于下列输入。 换句话说,如果在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.

也可以看看:

obtainStyledAttributes

Added in API level 1
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.

也可以看看:

obtainStyledAttributes

Added in API level 1
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.

也可以看看:

resolveAttribute

Added in API level 1
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.

setTo

Added in API level 1
void setTo (Resources.Theme other)

设置此主题以保持与主题其他内容相同的内容。 如果这两个主题都来自相同的资源对象,则在此函数返回后它们将相同。 如果他们来自不同的资源,那么只有他们共同拥有的资源将被设置在这个主题中。

Parameters
other Resources.Theme: The existing Theme to copy from.

Hooray!