android ग्लाइड और सरलटैग के साथ पेजर को अनियमित रूप से लोड करने वाली छवियां



bitmap android-viewpager (1)

मैं ViewPager का उपयोग कर एक PagerAdapter में छवि को लोड करने के लिए Glide का उपयोग कर रहा हूं। जब मैं निम्नलिखित विधि का उपयोग कर छवियों को लोड करता हूँ:

Glide.with(mContext).load(mImage).placeholder(R.drawable.placeholder).into(mImageView);

सब कुछ ठीक है, लेकिन अब मुझे बिटमैप को ग्लाइड से प्राप्त करने और इसे एक मानचित्र में संग्रहीत करने की आवश्यकता है जब भविष्य में संपादन के लिए यह लोड होता है, इसलिए मैंने इस विधि को निम्न में स्विच किया:

Glide.with(mContext).load(mImage).asBitmap().placeholder(R.drawable.placeholder).into(new SimpleTarget<Bitmap>() {

                @Override
                public void onLoadStarted(Drawable placeholder) {
                    super.onLoadStarted(placeholder);
                    mImageView.setImageDrawable(placeholder);
                }

                @Override
                public void onResourceReady(Bitmap bitmap, GlideAnimation<? super Bitmap> glideAnimation) {
                    if (bitmap != null) {
                        mImageView.setImageBitmap(bitmap);
                    }
                    mBitmapMap.put(position, bitmap);
                    mInterface.onImageLoaded(position, bitmap);
                }
            });

लेकिन परिणाम यह है कि छवि हमेशा दिखाई नहीं देती मुझे लगता है कि यह कुछ इस तथ्य से कैसे संबंधित है कि ग्लाइड लोड इमेज instatiateItem से संबंधित है और कुछ बिंदु पर यह तब रिटर्न करता है जब instatiateItem विधि पहले ही समाप्त हो रही है

ऐसा लगता है कि यह प्रश्न संबंधित है: ViewPager पेजर एडाप्टर दृश्य को अपडेट नहीं कर रहा है

लेकिन सुझावों ने मेरी मदद नहीं की

क्या किसी को इस समस्या का सामना करना पड़ता है और उसके लिए एक समाधान है?

अग्रिम में धन्यवाद।


इस समस्या का हल किसी अन्य प्रकार का लक्ष्य था, जिसका उपयोग मैं SimpleTarget ऑब्जेक्ट का उपयोग करने के बजाय किया था, जब मैंने प्रश्न लिखा था, मैं इसे SimpleTarget ऑब्जेक्ट के साथ बदल दिया था जो मुझे लगता है कि छवियों को अतुल्यकालिक बेहतर तरीके से प्रबंधित करता है। तो अंतिम कोड जिसका मैंने इस्तेमाल किया है:

Glide.with(BaseApplication.getInstance()).load(newContent).asBitmap().placeholder(R.drawable.ic_action_picture).into(new BitmapImageViewTarget(mIvContent) {
                    @Override
                    public void onLoadStarted(Drawable placeholder) {
                        super.onLoadStarted(placeholder);
                        mIvContent.setImageDrawable(placeholder);
                    }

                    @Override
                    public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
                        super.onResourceReady(resource, glideAnimation);
                        mBitmapMap.put(position, resource);
                        progressBar.setVisibility(View.INVISIBLE);
                        mIvContent.setImageBitmap(resource);
                    }

                    @Override
                    public void onLoadFailed(Exception e, Drawable errorDrawable) {
                        super.onLoadFailed(e, errorDrawable);
                        progressBar.setVisibility(View.INVISIBLE);
                    }
                });




android-glide