ImageSwitcher не показывает анимацию - PullRequest
0 голосов
/ 15 сентября 2018

Я использую виджет Android с помощью ImageSwitcher для перехода между двумя изображениями, например, в виде слайд-шоу, но он отображается только в анимации, а наша анимация не отображается.В чем проблема?

Код:

 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:

<?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:

<?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 ]

0 голосов
/ 15 сентября 2018

Мне удалось решить проблему, удалив «.thumbnail (.1f)» из запроса Glide.Не знаю глубже, но ImageSwitcher работает хорошо для меня сейчас.Спасибо товарищам, которые помогли любым способом.

0 голосов
/ 15 сентября 2018

Не найдено проблем в вашем коде Возможно, проблема в вашей анимации top_out

<?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%" />

В андроиде: toYDelta

change it android:toYDelta="-100%" to android:toYDelta="100%"
...