рдЕрдм рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп 5 рдмрд╛рд░ рдЬреАрдЖрдИрдПрдл рдЗрдореЗрдЬ рдкреНрд▓реЗ рдХрд░рдирд╛ рд╣реИред
рдФрд░ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдПрдирд┐рдореЗрдЯреЗрдб рдЗрдореЗрдЬ рдХреЗ рд▓рд┐рдП рд▓реВрдк рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП getLoopCount рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ,
рд▓реЗрдХрд┐рди рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реЗрдЯ рд▓реВрдкрдХрд╛рдЙрдВрдЯ рдХреИрд╕реЗ рдХрд░реЗрдВред
рдЖрдкрдХреА рдорджрдж рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВред
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЖрдкрдХрд╛ рдЬреАрдЖрдИрдПрдл рдареАрдХ рд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рд╣реЛрдЧрд╛ рдФрд░ рд▓реВрдк рдЧрд┐рдирддреА рдПрди рдкрд░ рд╕реЗрдЯ рд╣реЛрдЧреАред
рдЕрдиреНрдпрдерд╛, рдЖрдк рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдмреИрдХрдПрдВрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
public class LoopCountModifyingBackend extends AnimationBackendDelegate {
private int mLoopCount;
public LoopCountModifyingBackend(
<strong i="7">@Nullable</strong> AnimationBackend animationBackend,
int loopCount) {
super(animationBackend);
mLoopCount = loopCount;
}
<strong i="8">@Override</strong>
public int getLoopCount() {
return mLoopCount;
}
}
рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдПрдирд┐рдореЗрдЯреЗрдб рдбреНрд░рд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ:
final DraweeController controller = Fresco.newDraweeControllerBuilder()
.setAutoPlayAnimations(true)
.setUri(uri)
.setControllerListener(new BaseControllerListener<ImageInfo>() {
<strong i="12">@Override</strong>
public void onFinalImageSet(
String id,
<strong i="13">@Nullable</strong> ImageInfo imageInfo,
<strong i="14">@Nullable</strong> Animatable animatable) {
if (animatable instanceof AnimatedDrawable2) {
AnimatedDrawable2 animatedDrawable = (AnimatedDrawable2) animatable;
animatedDrawable.setAnimationBackend(new LoopCountModifyingBackend(animatedDrawable.getAnimationBackend(), 3));
}
}
})
.build();
simpleDraweeView.setController(controller);
рдЖрдк рдПрдХ рдХрд╕реНрдЯрдо DrawableFactory рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рд╕реАрдзреЗ рдХрд░рддрд╛ рд╣реИ рдФрд░ рддрдм рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЫрд╡рд┐ PipelineDraweeController рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИред
рдзрдиреНрдпрд╡рд╛рджред
рдЕрдм рдлреНрд░реЗрд╕реНрдХреЛ 2.0.0+ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВ?
рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЖрдкрдХрд╛ рдЬреАрдЖрдИрдПрдл рдареАрдХ рд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рд╣реЛрдЧрд╛ рдФрд░ рд▓реВрдк рдЧрд┐рдирддреА рдПрди рдкрд░ рд╕реЗрдЯ рд╣реЛрдЧреАред
рдЕрдиреНрдпрдерд╛, рдЖрдк рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдмреИрдХрдПрдВрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдПрдирд┐рдореЗрдЯреЗрдб рдбреНрд░рд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ:
рдЖрдк рдПрдХ рдХрд╕реНрдЯрдо DrawableFactory рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рд╕реАрдзреЗ рдХрд░рддрд╛ рд╣реИ рдФрд░ рддрдм рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЫрд╡рд┐ PipelineDraweeController рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИред