我正在使用此代码来更改视图的背景,无论它是彩色还是可绘制的。
static void backgroundChangerCompat(Resources resources, int rId, View view) {
TypedValue value = new TypedValue();
resources.getValue(rId,value,true);
if(value.type >= TypedValue.TYPE_FIRST_COLOR_INT && value.type <= TypedValue.TYPE_LAST_COLOR_INT) {
view.setBackgroundColor(ResourcesCompat.getColor(resources,rId,null));
}
else if(value.type == TypedValue.TYPE_REFERENCE) {
view.setBackground(ResourcesCompat.getDrawable(resources,rId,null));
}
}
如果我为其提供了参考,即可绘制的xml,则value
解析为{x1}},即0x3。为什么会这样?