我正在开发一个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()
中的图片,并且工作者很好,它们位于同一个文件中。
为什么我无法显示正确的图片?
答案 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" />