位图图像未在viewpager android中显示
Posted
技术标签:
【中文标题】位图图像未在viewpager android中显示【英文标题】:bitmap Images not displaying in 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);
请提供我卡在这里的输入。
【问题讨论】:
【参考方案1】:如果您通过异步处理将onCreateView
中的图像加载,它们暂时无法显示,因为它们尚未加载。如果你想在instantiateItem
中设置它,你需要在图片加载后刷新你的adapter的item。
解决方法是删除所有图片加载代码,在instantiateItem
中使用Picasso loader:
Picasso.with(context).load(/*your url*/url).into(/*ImageView*/imgView);
【讨论】:
以上是关于位图图像未在viewpager android中显示的主要内容,如果未能解决你的问题,请参考以下文章