Monday, July 23, 2012

[android-developers] Re: URGENT : HELP NEEDED ! Loading Bitmap Image into Custom ListView using AsyncTask

Hi,

Do you eventually see the bitmap in imageView, after it is loaded from the network ?

See the definitive example from Romain Guy -  http://code.google.com/p/shelves/ 


Also no need to say a post is URGENT, we assume all posts are urgent anyway.

Regards

On Tuesday, July 24, 2012 9:44:30 AM UTC+10, Raghav Shankar wrote:
I am working on an android application that has a custom listview that contains an imageview and a textview. I am loading an image from the internet and converting it into a bitmap image. I am doing this using an async task.  I am trying to display the bitmap in the imageview. When the activity starts I am only able to see a black screen and I don't see any listview. I would appreciate any help. Here is my code: 

 public class CustomList {

public Bitmap icon;
    public String title;
    public CustomList(){
        super();
    }
    
    public CustomList(Bitmap icon, String title) {
        super();
        this.icon = icon;
        this.title = title;
    }
}


Here is my adapter class: 


public class CustomListAdapter extends ArrayAdapter<CustomList> {

Context context;
int layoutResourceId;
LinkedList<CustomList> data = new LinkedList<CustomList>();
public CustomListAdapter(Context context, int layoutResourceId,
LinkedList<CustomList> data) {
super(context, layoutResourceId, data);
// TODO Auto-generated constructor stub
this.context = context;
this.layoutResourceId = layoutResourceId;
this.data = data;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View row = convertView;
CustomListHolder holder = null;
if(row == null){
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
            row = inflater.inflate(layoutResourceId, parent, false);
            holder = new CustomListHolder();

     holder.text = (TextView)row.findViewById(R.id.txtTitle);
     holder.thumbnail = (ImageView)row.findViewById(R.id.imgIcon);
     row.setTag(holder);
}
else
holder = (CustomListHolder)row.getTag();
CustomList cl = data.get(position);
        holder.text.setText(cl.title);
        if(cl.icon != null)
        holder.thumbnail.setImageBitmap(cl.icon);
        
return row;
}
static class CustomListHolder
    {
        ImageView thumbnail;
        TextView text;
    }

}


Here is my main activity and it has an async class as a sub class: 

public class MainActivity extends Activity {
LinkedList<CustomList> list_data = new LinkedList<CustomList>();
LinkedList<String> photo_url = new LinkedList<String>();
LinkedList<String> list_title = new LinkedList<String>();
ListView lv ;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_main);
        list_title.add(0, "Android");
        LoadImage eventImageLoader = new LoadImage(MainActivity.this, photo_url, list_title);
        eventImageLoader.execute();
        
        CustomListAdapter adapter = new CustomListAdapter(this,R.layout.list_item, list_data);
    lv = (ListView)findViewById(R.id.listView1);
    lv.setAdapter(adapter);
      
    }
       
    public class LoadImage extends AsyncTask<Void, Void, LinkedList<CustomList>>{

     Context callingContext = null;
     LinkedList<String> pic_url = new LinkedList<String>();
     LinkedList<String> title = new LinkedList<String>();
     Bitmap b = null;
     LinkedList<Bitmap> bm = new LinkedList<Bitmap>();
    
     public LoadImage(Context callingContext, LinkedList<String> pic_url, LinkedList<String> title){
    
     this.callingContext = callingContext;
     this.pic_url = pic_url;
     this.title = title;
     }
    
@Override
protected LinkedList<CustomList> doInBackground(Void... params) {
// TODO Auto-generated method stub
URL imageUrl;
CustomList temp;
for(int i = 0; i < pic_url.size(); i++)
        {           
try {
imageUrl = new URL(pic_url.get(i));
temp = new CustomList(BitmapFactory.decodeStream(imageUrl.openConnection().getInputStream()),title.get(i));
list_data.add(i,temp);
System.out.println("Added" + i + "th Value");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}             
        }
return list_data;
}
    
protected void onPostExecute(LinkedList<CustomList> bm) {
// TODO Auto-generated method stub
super.onPostExecute(bm);

}
    }   
}

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate