ImageSwitcher is not showing outAnimation

159 Views Asked by At

I'm using ImageSwitcher widget of android to transition between 2 images like a slide show but it is showing only in animation and out animation is not showing. What is the issue?

Code:

 imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
                    @Override
                    public View makeView() {

                        RoundedImageView imageView = new RoundedImageView(context);
                        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                        imageView.setLayoutParams(new
                                ImageSwitcher.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT));
                        imageView.setCornerRadius(context.getResources().getDimension(R.dimen.border_radius));

                        return imageView;
                    }
                });


Animation in,out;
in = AnimationUtils.loadAnimation(context, R.anim.bottom_in);
out = AnimationUtils.loadAnimation(context, R.anim.top_out);

 imageSwitcher.setInAnimation(in);
            imageSwitcher.setOutAnimation(out);

            Glide.with(context)
                    .asDrawable()
                    .load(url)
                    .thumbnail(.1f)
                    .apply(requestOptions)
                    .into(new SimpleTarget<Drawable>() {
                        @Override
                        public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {

                            imageSwitcher.setImageDrawable(resource);
                        }
                    });

top_out animation:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="300"
    android:fromYDelta="0%"
    android:interpolator="@android:anim/decelerate_interpolator"
    android:toYDelta="-100%" />

bottom_in animation:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="300"
    android:fromYDelta="100%"
    android:interpolator="@android:anim/decelerate_interpolator"
    android:toYDelta="0%" />
2

There are 2 best solutions below

1
On

No Problem found in Your Code May be Problem Is in Your top_out animation

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromYDelta="0%"
android:interpolator="@android:anim/decelerate_interpolator"
android:toYDelta="-100%" />

In android:toYDelta

change it android:toYDelta="-100%" to android:toYDelta="100%"
0
On

I was able to resolve the issue by removing '.thumbnail(.1f)' from the Glide request. Don't know the deeper sight but ImageSwitcher is working fine for me now. Thanks to fellows who helped by any means.