bumptech/glide

Is there is any way to listen for the current GIF Frame while playing GIF?

Open

#2524 opened on Oct 27, 2017

View on GitHub
 (10 comments) (0 reactions) (0 assignees)Java (35,023 stars) (6,176 forks)batch import
GIFenhancementhelp wanted

Description

I am using this code in Fresco. I want to switch to Glide

DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setUri(uri)
                .setAutoPlayAnimations(true)
                .setControllerListener(new BaseControllerListener<ImageInfo>() {
                    @Override
                    public void onFinalImageSet(String id, ImageInfo imageInfo, Animatable animatable) {
                        ((SimpleDraweeView) mGIFView).setAspectRatio((float) imageInfo.getWidth() / imageInfo.getHeight());

                        if (animatable != null && animatable instanceof AnimatedDrawable2) {
                            ((AnimatedDrawable2) animatable).setAnimationListener(

                                    new AnimationListener() {
                                        @Override
                                        public void onAnimationStart(AnimatedDrawable2 drawable) {

                                        }

                                        @Override
                                        public void onAnimationStop(AnimatedDrawable2 drawable) {

                                        }

                                        @Override
                                        public void onAnimationReset(AnimatedDrawable2 drawable) {

                                        }

                                        @Override
                                        public void onAnimationRepeat(AnimatedDrawable2 drawable) {

                                        }

                                        @Override
                                        public void onAnimationFrame(AnimatedDrawable2 drawable, int frameNumber) {
                                          //Current frame
                                        }

                                    });
                        }
                    }


                    @Override
                    public void onFailure(String id, Throwable throwable) {
                        super.onFailure(id, throwable);
                        Log.e("failed", throwable.getLocalizedMessage());
                    }
                }).build();

Contributor guide