public void setTintList(ColorStateList tint) {
final BitmapState state = mBitmapState;
if (state.mTint != tint) {
state.mTint = tint;
mBlendModeFilter = updateBlendModeFilter(mBlendModeFilter, tint,
mBitmapState.mBlendMode);
invalidateSelf(); //
}
}
@Override
public void setTintBlendMode(@NonNull BlendMode blendMode) {
final BitmapState state = mBitmapState;
if (state.mBlendMode != blendMode) {
state.mBlendMode = blendMode;
mBlendModeFilter = updateBlendModeFilter(mBlendModeFilter, mBitmapState.mTint,
blendMode);
invalidateSelf(); //
}
}
https://sickworm.com/?tag=colorstatelist
Selector是什么?就是给Button等控件使用的一个根据状态改变控件颜色或背景的状态器,它一般放在drawable目录下。
Selector状态器理解,两种:
1、作为color和alpha (对应selector 生成ColorStateList.java)《----map {@link android.view.View} state sets to colors.
2、作为drawable (对应selector 生成StateListDrawable.java ===>drawable的集合)
tint的颜色,根据状态
text颜色,根据状态
(所以,tint的颜色和text颜色一致)
====》上述能力没问题
但在帧动画里,出现问题:
1、着色接口没有xml适配
2、如果对每一张图片,都适配出根据状态适配不同颜色的逻辑
----->这部分公共逻辑必然要抽出来
----->因为帧动画是在xml里生成的,必须????这部分逻辑,如果在代码里配置又如何????