I\'m making a custom ImageView
. One of the methods is to load an image from a URL. And I want to retrieve the Bitmap in a Thread and load the bitmap in the UI
You can do something like this:
new Thread(new Runnable() {
public void run() {
final Bitmap bm = getBitmapFromURL(myStation.getStation().imageURL);
((Activity) context).runOnUiThread(new Runnable() {
public void run() {
icon.setImageBitmap(bm);
}
});
}
}).start();
This will work outside of an activity, like in a ListAdapter.
Create a class that extends from AsyncTask. Pass the ImageView in the constructor. In the doInBackground method, download the image. In the postExecute method, set the image to the ImageView.
Download the Image via AsyncTask
and set to your view in its onPostExecute method
OR
From a separate image downloading thread use the post method of View
which will always run its Runnable
on UI-thread:
yourImageView.post(new Runnable() {
@Override
public void run() {
// set the downloaded image here
}
});