【问题标题】:bitmap Images not displaying in viewpager android位图图像未在viewpager android中显示
【发布时间】:2015-01-26 12:31:29
【问题描述】:

在我的 android 应用程序中,我正在使用一个标签滑动视图,其中有 4 个标签,前 2 个标签显示文本,在接下来的 2 个标签中,我需要显示经过一些后台处理后从服务器获取的位图图像。问题是位图对象可用于列表但不显示。

请看下面的代码

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


      }

}

请提供我卡在这里的输入。

【问题讨论】:

    标签: android bitmap viewpage


    【解决方案1】:

    如果您通过异步处理将onCreateView中的图像加载,它们暂时无法显示,因为它们尚未加载。如果你想在instantiateItem中设置它,你需要在图片加载后刷新你的adapter的item。

    解决方法是删除所有图片加载代码,在instantiateItem中使用Picasso loader

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多