我一直在使用一种方法从当前获取颜色属性Context
:
public static int getColorAttribute(Context context, @AttrRes int attr) {
final TypedValue value = new TypedValue();
context.getTheme().resolveAttribute(attr, value, true);
return value.data;
}
它工作得很好,但是当我尝试在我的类中使用它时,Application
它会返回0
. 在大多数情况下,我会这样调用该方法:
int colorAccent = Util.getColorAttribute(this, R.attr.colorAccent);
这将返回我在清单中"colorAccent"
设置的内容。但是在课堂上我不得不打电话而不是. 因此,我也将方法的其他实例之一切换为to并返回。我也尝试过,结果相同。themes.xml
AppTheme
Application
getApplicationContext()
this
Activity
getApplicationContext()
0
getApplication()
getBaseContext()
我想知道是否有办法从Application
课堂上的应用程序主题中获取颜色。或者如果没有,为什么getApplicationContext().getTheme()
似乎没有返回应用程序主题。