2015-01-26 2 views
0

В моем приложении Android я использую представление прокрутки вкладки, имеющее 4 вкладки, первые 2 вкладки отображают текст, в следующих двух вкладках мне нужно отображать растровые изображения, которые я получаю с сервера после некоторой фоновой обработки. Проблема в том, что объект растровых изображений доступен в списке, но не отображается.bitmap Изображения, не отображаемые в viewpager android

Пожалуйста, смотрите ниже код

public class PhotoBeforeFoe extends Fragment { 
    ImageView imageView; 
    ExistingData existingData; 
    ArrayList<Bitmap> bitmaps = new ArrayList<Bitmap>(); 
    int count; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.photos, container, false);   
     ViewPager viewPager = (ViewPager) rootView.findViewById(R.id.photo_pager);  
     imageView= new ImageView(getActivity()); 
     String[] imagePath=getArguments().getStringArray("beforeImage"); 
     ImageLoader imageLoader = new ImageLoader(getActivity()); 
     bitmaps=imageLoader.getImageFromTheURL(imagePath,0,imageView); 
    /* int i=0; 
     for(Bitmap b :bitmaps){ 
      if(bitmaps.get(i)!=null) 
      d[i]=new BitmapDrawable(getResources(),bitmaps.get(i)); 
      else 
       break; 
      i++; 
     }*/ 
     //Drawable d = new BitmapDrawable(getResources(),bitmaps.get(0)); 

     System.out.println(d.length); 
     count=bitmaps.size();  
     ImagePagerAdapter adapter = new ImagePagerAdapter();   
     viewPager.setAdapter(adapter);  
     adapter.notifyDataSetChanged(); 

     return rootView; 
    } 


     private class ImagePagerAdapter extends PagerAdapter { 


      @Override 
      public int getCount() { 
       //this.notifyDataSetChanged(); 
       return d.length; 
      } 

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

      @Override 
      public Object instantiateItem(ViewGroup container, int position) { 
       Context context = PhotoBeforeFoeFragment.this.getActivity(); 
       ImageView imageView = new ImageView(context); 
       imageView.setImageBitmap(bitmaps.get(position)); 
      // imageView.setImageDrawable(d[position]); 
       ((ViewPager) container).addView(imageView); 
       return imageView; 
      } 
      @Override 
      public int getItemPosition(Object object) { 
       return POSITION_NONE; 
      } 

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


     } 

} 

Просьба входы я м застрял здесь.

ответ

0

Если вы загружаете изображения в onCreateView путем обработки async, они не могут быть отображены на данный момент, так как они не загружены. Если вы хотите установить его в instantiateItem, вам нужно обновить элемент адаптера после загрузки изображения.

Решение удалить все ваши изображения кода загрузки и использования Picasso loader в instantiateItem:

Picasso.with(context).load(/*your url*/url).into(/*ImageView*/imgView); 
+0

Спасибо, что работал для меня – user1785094

+0

Так пожалуйста, примите мой ответ) – anil

Смежные вопросы