位图图像未在 viewpager 中显示 android

bitmap Images not displaying in viewpager android

在我的 android 应用程序中,我使用的是具有 4 个选项卡的选项卡滑动视图,前 2 个选项卡显示文本,在接下来的 2 个选项卡中,我需要显示一些背景后从服务器获取的位图图像 processing.Problem 是位图对象在列表中可用但未显示。

请看下面的代码

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


      }

}

请提供意见我卡在这里了。

如果您在onCreateView中通过异步处理加载您的图片,它们暂时无法显示,因为它们还没有加载。如果您想在 instantiateItem 中设置它,您需要在图像加载后刷新适配器的项目。

解决方案是删除所有图像加载代码并在 instantiateItem 中使用 Picasso loader:

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