从服务器在Android App中显示照片

时间:2014-05-15 05:36:38

标签: android listview bitmap

如果我在任何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;
        }
    });

0 个答案:

没有答案