Ошибка gif перехода sharedElement - как это исправить? - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь сделать переход android sharedElement для сканирования онлайн-изображения по Glide, пока изображение gif, а изображения отображаются в viewPager.Я обнаружил, что щелчок ImageView просто отображает первый кадр, когда imageView выполняет переход sharedElement.следующий код в моем проекте.

Glide.with(context)
                .load(imageUrl)
                .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                .listener(new RequestListener<String, GlideDrawable>() {
                    @Override
                    public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                        return false;
                    }

                    @Override
                    public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                        if (imageView == null) {
                            return false;
                        }
                        if (imageView.getScaleType() != ImageView.ScaleType.FIT_XY) {
                            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                        }
                        ViewGroup.LayoutParams params = imageView.getLayoutParams();
                        int vw = imageView.windowW;
                        float scale = (float) vw / resource.getIntrinsicWidth();
                        final int vh = (int) ((float) resource.getIntrinsicHeight() * scale);
                        params.height = vh + imageView.getPaddingTop() + imageView.getPaddingBottom();
                        imageView.setLayoutParams(params);
                        imageView.setVH(vh);
                        return false;
                    }
                })
                .into(imageView);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            setEnterSharedElementCallback(new SharedElementCallback() {
                @Override
                public void onMapSharedElements(List<String> names, Map<String, View> sharedElements) {
                    sharedElements.clear();
                    View view = mViewPager.getAdapter().getItem(mViewPager.getCurrentItem()).getImg();
                    sharedElements.put(ViewCompat.getTransitionName(view), view);
                }
            });
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...