/**
* Applies current discrete indicator tint from {@link Decorator#mTintInfo} to the current discrete
* indicator's drawable.
*/
@SuppressLint("NewApi")
@SuppressWarnings("ConstantConditions")
private void applyDiscreteIndicatorTint() {
this.ensureDecorator();
if (mDiscreteIndicator == null || !mDecorator.hasTintInfo()) {
return;
}
final Drawable indicator = mDiscreteIndicator instanceof ScaleDrawable ? ((ScaleDrawable) mDiscreteIndicator).getDrawable() : mDiscreteIndicator;
final SeekBarTintInfo tintInfo = mDecorator.getTintInfo();
if ((!tintInfo.hasDiscreteIndicatorTintList && !tintInfo.hasDiscreteIndicatorTintMode)) {
return;
}
if (UiConfig.MATERIALIZED) {
this.mDiscreteIndicator = mDiscreteIndicator.mutate();
if (tintInfo.hasDiscreteIndicatorTintList) {
mDiscreteIndicator.setTintList(tintInfo.discreteIndicatorTintList);
}
if (tintInfo.hasDiscreteIndicatorTintMode) {
mDiscreteIndicator.setTintMode(tintInfo.discreteIndicatorTintMode);
}
if (mDiscreteIndicator.isStateful()) {
mDiscreteIndicator.setState(getDrawableState());
}
return;
}
final boolean isTintDrawable = indicator instanceof TintDrawable;
final TintDrawable tintDrawable = isTintDrawable ? (TintDrawable) indicator : new TintDrawable(indicator);
if (tintInfo.hasDiscreteIndicatorTintList) {
tintDrawable.setTintList(tintInfo.discreteIndicatorTintList);
}
if (tintInfo.hasDiscreteIndicatorTintMode) {
tintDrawable.setTintMode(tintInfo.discreteIndicatorTintMode);
}
if (isTintDrawable) {
return;
}
this.mDiscreteIndicator = mDecorator.hasPrivateFlag(PFLAG_DISCRETE) ?
mAnimations.makeDiscreteIndicatorScaleable(tintDrawable, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL) :
tintDrawable;
mDiscreteIndicator.setCallback(this);
updateDiscreteIndicatorState(getDrawableState(), false);
}
SeekBarWidget.java 文件源码
java
阅读 33
收藏 0
点赞 0
评论 0
项目:android_ui
作者:
评论列表
文章目录