在不设置主题到应用程序/活动之前,是否可以从特定主题获取已设置的属性值?
TypedArray a = getTheme().obtainStyledAttributes(
R.style.MyTheme,
new int[] { R.attr.editTextColor });
// Get color hex code (eg, #fff)
int intColor = a.getColor(0 /* index */, 0 /* defaultVal */);
String hexColor = Integer.toHexString(intColor);
// Don't forget to recycle
a.recycle();
a.recycle()
方法。 - ayke如果您需要在 XML 文件中使用它,可以使用类似以下的方式:
style="?android:attr/panelTextAppearance"
<TextView
style="?android:attr/panelTextAppearance"
android:paddingTop="?android:attr/paddingTop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/your_text"
/>
JavaDoc:
方法
TypedArray
android.content.res.Resources.Theme.obtainStyledAttributes(int[]
attrs)返回一个包含 Theme 中在 attrs 列表中定义的值的
TypedArray
。使用完数组后一定要调用
TypedArray.recycle()
方法来回收资源。
a.recycle()
! - KitKat