java - 将图像从 url 添加到 viewpager 的第二和第三位置

标签 java android android-viewpager android-pageradapter

这里我有两个网址,但是当我运行这个应用程序时,这些图像被加载到第二页意味着第一张图像将在几秒钟后加载到第二页中,第二张图像也会通过重叠添加到相同的位置。我需要将其添加到第二页和第三页这些网址

 viewPager = (ViewPager) findViewById(R.id.splash);
        ImageAdapter adapter = new ImageAdapter(this);
        viewPager.setAdapter(adapter);

public class ImageAdapter extends PagerAdapter {

        Context context;

        private int[] GalImages = new int[] {
                R.drawable.slider,
                R.drawable.slider,
                R.drawable.slider,
        };

        ImageAdapter(Context context){
            this.context=context;
        }

        @Override
        public int getCount() {
         return GalImages.length;
         //   return 10;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == ((ImageView) object);
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            ImageView imageView = new ImageView(context);
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
            imageView.setImageResource(GalImages[position]);
            new LoadImage(imageView).execute("http://www.gadgetbaazar.com/wp-content/uploads/2016/12/Top-Mobile-Phones.jpg");
            new LoadImage(imageView).execute("https://pisces.bbystatic.com/BestBuy_US/store/ee/2015/com/pm/nav_desktops_1115.jpg");
            container.addView(imageView, 0);
            return imageView;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            ((ViewPager) container).removeView((ImageView) object);
        }



        private class LoadImage extends AsyncTask<String, String, Bitmap> {
            ImageView img=null;
            public LoadImage(ImageView img){
                this.img=img;
            }
            @Override
            protected void onPreExecute() {
                super.onPreExecute();

            }
            protected Bitmap doInBackground(String... args) {
                Bitmap bitmap=null;
                try {
                    bitmap = BitmapFactory.decodeStream((InputStream)new URL(args[0]).getContent());
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return bitmap;
            }
            protected void onPostExecute(Bitmap image) {
                if(image != null){
                    img.setImageBitmap(image);
                }
            }
        }
    }

最佳答案

试试这个

@Override
        public Object instantiateItem(ViewGroup container, int position) {
            ImageView imageView = new ImageView(context);
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
            if(position == 0){
            imageView.setImageResource(GalImages[position]);
            }else if(position == 1){
            new LoadImage(imageView).execute("http://www.gadgetbaazar.com/wp-content/uploads/2016/12/Top-Mobile-Phones.jpg");
            }else if(position ==2){
            new LoadImage(imageView).execute("https://pisces.bbystatic.com/BestBuy_US/store/ee/2015/com/pm/nav_desktops_1115.jpg");
            }

            container.addView(imageView, 0);
            return imageView;
        }

关于java - 将图像从 url 添加到 viewpager 的第二和第三位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44219632/

相关文章:

android - 智能转换为 'Int' 是不可能的,因为 'mViewModel.counter.value' 是一个复杂的表达式

java - 从图片中获取像素颜色?

java - Android App Studio 上的 PSQL 连接失败

android - 向 viewPager 提供 clickAction

android - 如何将 map 放入 PagerAdapter?是否可以?

android - ViewPager - 获取下一页的部分 View

java - AMQ212015 无法在日志上写入大于 bufferSize(501760) 的记录

Java Grammar 语法分析器(ASCII 到图形)

java - Spring 5 中 lite @Bean 方法的行为

java - 如何在JSP中使用neo4j