Android – 从代码中引用当前应用主题中的属性值

前端之家收集整理的这篇文章主要介绍了Android – 从代码中引用当前应用主题中的属性值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Android devGuide explains如何使用问号(?)而不是(@)引用当前应用主题中的属性值.

有人知道如何从代码,如在定制组件?

解决方法

在XML中,它看起来像这样:
style="?header_background"

在程序上,这有点棘手.在你的活动中

private static Theme theme = null;

protected void onCreate(Bundle savedInstanceState) {
   ...
   theme = getTheme();
   ...
}

public static int getThemeColors(int attr){
   TypedValue typedvalueattr = new TypedValue();
   theme.resolveAttribute(attr,typedvalueattr,true);
   return typedvalueattr.resourceId;
}

当你想要访问主题属性时,你会做这样的事情:

int outside_background = MyActivity.getThemeColors(R.attr.outside_background);
setBackgroundColor(getResources().getColor(outside_background));

这有点复杂,但你去;-)

原文链接:https://www.f2er.com/android/310611.html

猜你在找的Android相关文章