मेरे आवेदन में मैं वॉली छवि लोडर का उपयोग कर रहा हूं लेकिन वहां एक मुद्दा है जिसे मैं समझ नहीं पाया। जब मैं केवल प्रतिक्रिया को कॉल कर रहा हूं .getBitmap और इसे पृष्ठभूमि छवि के रूप में सेट करें, यह ठीक है, लेकिन जब मैं कुछ कोड जोड़ता हूं उदाहरण के लिए System.out.println (response.getBitmap) यह क्रैश हो जाता है। एक शब्द में अगर मैं केवल एक बार respone.getBitmap को ठीक करता हूं, लेकिन जब यह दो बार या अधिक दुर्घटनाग्रस्त हो जाता है। यहां क्या समस्या है?वॉली छवि बिटमैप शून्य है
public class NewsAdapter extends BaseAdapter {
private ArrayList<News> mNewsList;
private DefaultActivity mActivity;
private ImageLoader imageLoader;
private RequestQueue mRequestQueue;
public NewsAdapter(DefaultActivity pActivity, ArrayList<News> newsList){
mActivity = pActivity;
mNewsList = newsList;
mRequestQueue = Volley.newRequestQueue(mActivity);
imageLoader = new ImageLoader(mRequestQueue, new BitmapLruCache(
BitmapLruCache.getDefaultLruCacheSize()));
}
private class ViewHolder {
public ImageView networkImageView;
public TextView title;
public TextView description;
}
@Override
public int getCount() {
return mNewsList.size();
}
@Override
public News getItem(int i) {
return mNewsList.get(i);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
final ViewHolder viewHolder;
final News news = getItem(i);
if (view == null){
final LayoutInflater li = (LayoutInflater) mActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = li.inflate(R.layout.orange_news_item, viewGroup, false);
viewHolder = new ViewHolder();
viewHolder.networkImageView = (ImageView)view.findViewById(R.id.imageView);
viewHolder.title = (TextView)view.findViewById(R.id.title);
viewHolder.description = (TextView)view.findViewById(R.id.description);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.title.setText(Html.fromHtml(news.getTitle()));
viewHolder.description.setText(Html.fromHtml(news.getBody()));
imageLoader.get(news.getImageThumbUrl(),new ImageLoader.ImageListener() {
@Override
public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) {
viewHolder.networkImageView.setImageBitmap(response.getBitmap());
System.out.println("bitmap="+response.getBitmap());
System.out.println("width="+response.getBitmap().getWidth());
System.out.println("height="+response.getBitmap().getHeight());
}
@Override
public void onErrorResponse(VolleyError error) {
//To change body of implemented methods use File | Settings | File Templates.
}
});
return view;
}
}
दुर्घटना क्या है? –