ImageViews で構成されるテーブルがある UI コンポーネントがあります。URL から画像を設定したいと思います。
画像が UI に設定されている他のクラスを非同期で呼び出そうとすると、UI スレッドによってのみ UI を更新できるというエラーが表示されます。UI を読み込み、画像が利用可能になったら読み込みたいです。
これが私のコードです:
Calling function...
new AsyncImageLoader(context,imgviewArray).execute();
// Called class..
@Override
protected Void doInBackground(Void... urls) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
int i = 0;
try{
db=new MyDB(mainact_instance);
System.out.println("Inside doInBackground");
if(isNetworkAvailable())
{
System.out.println("Network connected");
System.out.println("Fetching from network-Images");
Movie[] movies = db.selectRecords();
for(Movie mv : movies)
{
try {
URL url = new URL(IMAGE_URL+mv.getId()+".jpg");
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
images[i].setImageBitmap(bmp);
i++;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
else{
System.out.println("Network not connected..fetching max id row");
}
}catch(Exception ex){ex.printStackTrace();
}
return null;
//db.close();
}
どうすればこれを達成できるか教えてください。