是否可以从特定主题获取样式属性值而无需将主题设置为应用程序/活动?
(我的意思是在调用context.setTheme(..)
之前)
答案 0 :(得分:42)
例如,要获取名为MyTheme的主题的editTextColor属性值:
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();
答案 1 :(得分:2)
的JavaDoc:
方法
TypedArray
android.content.res.Resources.Theme.obtainStyledAttributes(int[]
ATTRS)返回一个
TypedArray
,其中包含由Theme定义的值 在attrs中列出。完成阵列后,请务必致电
TypedArray.recycle()
。
答案 2 :(得分:1)
如果你需要在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"
/>
如果你正在使用eclipse,控制+点击该项目,看看其他可能的值(文件attrs.xml将打开)。