2017-05-27 48 views
0

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

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); 
       } 
      } 
     } 
    } 
+0

所以,你要加载三种不同的图像viewpager吧? –

+0

来自抽屉的一张图片和来自url的其他两张 –

+0

我不太确定你想要实现什么,但是你有没有试过玩这个位置?比方说,如果在instantiateItem()如果位置== 1,加载第一个URL,并且如果位置== 2,加载第二个URL –

回答

1

试试这个

@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; 
     } 
相关问题