我一直在努力使用pre-lollipop API获取样式属性。
使用棒棒糖,我使用
final TypedValue statusBarColor = new TypedValue();
getTheme().resolveAttribute(android.R.attr.colorPrimaryDark, statusBarColor, true);
STATUS_BAR_COLOR = ContextCompat.getColor(this, statusBarColor.resourceId);
这完美无缺,我在API 21版下面没有找到类似的方法。(minAPI = 16)
我尝试使用getTheme().obtainStyledAttributes()
。但是,我没有AttributeSet
提供给该方法,因为我在一个活动中使用它。我做的事情是完全错误的,还是解析21岁以下API版本不支持的样式属性?
答案 0 :(得分:1)
试试此代码
TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(R.attr.colorPrimaryDark, typedValue, true);
STATUS_BAR_COLOR = ContextCompat.getColor(this, typedValue.resourceId);
不需要 android.R.attr.colorPrimaryDark ,而应该使用 R.attr.colorPrimaryDark 全部:)