如果我在任何Activity
上仅显示图片,则会出现问题,因为我会将图片转换为Bitmap
中的doInBackGround()
。
但是如果我使用Custom ListView
并且我想在每个项目上显示图像呢?
我正在使用adapter.setViewBinder
。但问题是我无法在doInBackground()
中使用它,因此我需要在onPostExecute()
中使用,这是一个大问题。现在,如果有更多图像,那么应用程序将冻结一段时间,直到所有图像都转换为Bitmap
。
如何防止此问题并仅在doInBackground()
完成所有过程?
我的代码:
adapter.setViewBinder(new SimpleAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Object data, String textRepresentation) {
if (view.getId() == R.id.imgHotelPhoto) {
String Photo = data.toString();
try {
url_Hotelhoto = new URL("" + WebsiteURL"/images/HotelSmallPhoto/" + Photo + "");
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
bmp_HotelPhoto = BitmapFactory.decodeStream(url_Hotelhoto.openConnection().getInputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
((ImageView) view).setImageBitmap(bmp_HotelPhoto);
return true;
}
return false;
}
});