Imageloader始终显示错误的图片

时间:2016-03-31 11:00:16

标签: android universal-image-loader

我正在开发一个Android应用程序。我使用ImageLoader从服务加载图片。代码如下:

    public ImageLoader imageLoader = ImageLoader.getInstance();
    imageLoader.init(ImageLoaderConfiguration.createDefault(.this));
    options = new DisplayImageOptions.Builder().showStubImage(R.drawable.ic_stub).showImageForEmptyUri(R.drawable.ic_empty).showImageOnFail(R.drawable.ic_error).cacheInMemory(true).cacheOnDisc(true).displayer(new RoundedBitmapDisplayer(5)).build();
    imageLoader.displayImage(my_pic, holder.head, options);

我在活动的getView()中使用了此代码。我可以从服务中读取图片,但holder.head始终显示图片R.drawable.ic_stub。 在此代码之前,我还使用ImageLoader来显示函数onCreate()中的图片,并且工作者很好,它们位于同一个文件中。

为什么我无法显示正确的图片?

1 个答案:

答案 0 :(得分:0)

像这样使用图像加载器..... 首先初始化

 DisplayImageOptions defaultOptions;
    ImageLoaderConfiguration config;

              // OnCreate{
                defaultOptions = new DisplayImageOptions.Builder()
                        .cacheOnDisc(true).cacheInMemory(true)
                        .imageScaleType(ImageScaleType.EXACTLY).
                                showImageOnFail(R.drawable.noimage).showImageForEmptyUri(R.drawable.noimage).
                                showImageOnLoading(R.drawable.noimage)
                        .displayer(new FadeInBitmapDisplayer(300)).build();

                config = new ImageLoaderConfiguration.Builder(
                        getApplicationContext())
                        .defaultDisplayImageOptions(defaultOptions)
                        .memoryCache(new WeakMemoryCache())
                        .discCacheSize(100 * 1024 * 1024).build();

                ImageLoader.getInstance().init(config);

}

公共类SubCatAdapter扩展了BaseAdapter {

.....
private ImageLoader imageLoader;

public SubCatAdapter(Context mcontext, ArrayList<SubCategoriesVO> itmes) {
    this.mcontext = mcontext;
    ....
    imageLoader = imageLoader.getInstance();
}

....
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    Holder holder;
    if (convertView == null) {
        LayoutInflater mInflater = (LayoutInflater) mcontext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        convertView = mInflater.inflate(R.layout.subcat_list_item, null);

        holder = new Holder();
        holder.imgIcon = (ImageView) convertView.findViewById(R.id.dd_icon);
        .....

        convertView.setTag(holder);
    } else {
        holder = (Holder) convertView.getTag();
    }

    SubCategoriesVO item = searched_itmes.get(position);

    if (imageLoader != null)
        imageLoader.displayImage(item.getImg(), holder.imgIcon);
   ....
    return convertView;
}}

添加访问互联网的权限

 <uses-permission android:name="android.permission.INTERNET" />