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 thread.
How can I make a runOnUIThread()
call for painting the bitmap?
Is there some kind of built in function? Or should I create a Handler
in the constructor and use it for running runnables in the UI thread?
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
}
});
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With