Open Caij opened 7 years ago
AppCompatProgressBarHelper.loadFromAttribute(){ TypedArray array = mView.getContext().obtainStyledAttributes(attrs, ATTR, defStyleAttr, 0); if (array.hasValue(0)) { mProgressTintResId = array.getResourceId(0, 0); setSupportProgressTint(array.getColorStateList(0)); } if (array.hasValue(1)) { mIndeterminateTintResId = array.getResourceId(1, 0); setSupportIndeterminateTint(array.getColorStateList(1)); } array.recycle(); }
改成下面 AppCompatProgressBarHelper.loadFromAttribute(){ TypedArray array = mView.getContext().obtainStyledAttributes(attrs, ATTR, defStyleAttr, 0); if (array.hasValue(0)) { mProgressTintResId = array.getResourceId(0, 0); setSupportProgressTint(hemeUtil.getThemeColorStateList(mProgressTintResId)); } if (array.hasValue(1)) { mIndeterminateTintResId = array.getResourceId(1, 0); setSupportIndeterminateTint(ThemeUtil.getThemeColorStateList(mIndeterminateTintResId)); } array.recycle(); }
这样可以避免replaceColor这个方法里面替换颜色 感觉这个方法太不可靠了, 只需要replaceColorById 这个里面替换颜色id就行, id替换感觉更加可靠。
AppCompatProgressBarHelper.loadFromAttribute(){ TypedArray array = mView.getContext().obtainStyledAttributes(attrs, ATTR, defStyleAttr, 0); if (array.hasValue(0)) { mProgressTintResId = array.getResourceId(0, 0); setSupportProgressTint(array.getColorStateList(0)); } if (array.hasValue(1)) { mIndeterminateTintResId = array.getResourceId(1, 0); setSupportIndeterminateTint(array.getColorStateList(1)); } array.recycle(); }
改成下面 AppCompatProgressBarHelper.loadFromAttribute(){ TypedArray array = mView.getContext().obtainStyledAttributes(attrs, ATTR, defStyleAttr, 0); if (array.hasValue(0)) { mProgressTintResId = array.getResourceId(0, 0); setSupportProgressTint(hemeUtil.getThemeColorStateList(mProgressTintResId)); } if (array.hasValue(1)) { mIndeterminateTintResId = array.getResourceId(1, 0); setSupportIndeterminateTint(ThemeUtil.getThemeColorStateList(mIndeterminateTintResId)); } array.recycle(); }
这样可以避免replaceColor这个方法里面替换颜色 感觉这个方法太不可靠了, 只需要replaceColorById 这个里面替换颜色id就行, id替换感觉更加可靠。