Обновление ImageView Android - PullRequest
       2

Обновление ImageView Android

2 голосов
/ 17 января 2012

В событии onCreate я делаю асинхронный запрос к API Facebook:

Utility.mAsyncRunner.request(null, params1,
                    new myListener());

В событии myListener onComplete я хотел бы установить изображение в просмотре изображений

public class PhotoDisplayListener extends BaseRequestListener {

        @Override
        public void onComplete(final String response, final Object state) {
        //set my image with the url provided in the response
        ...parse json....
ImageView img = (ImageView)findViewById(R.id.img);


                URL ulrn = new URL(photourl);
                HttpURLConnection con = (HttpURLConnection)ulrn.openConnection();
                InputStream is = con.getInputStream();
                Bitmap bmp = BitmapFactory.decodeStream(is);
                if (null != bmp){
                    img.setImageBitmap(bmp);
                    setImage(bmp);
                    }
                else
                    System.out.println("The Bitmap is NULL");

                }catch(Exception e){} catch (FacebookError e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    showToast(e.getMessage());
                }

}

}

проблема в том, что изображение не обновляется с новым, установленным мной. Это устанавливает это, это не обновляет это. Если я заблокирую и разблокирую телефон, изображение появится так, как должно. Как я могу принудительно обновить изображение? Спасибо!

Ответы [ 3 ]

4 голосов
/ 17 января 2012

Используйте img.invalidate();, чтобы обновить изображение после установки изображения.

Как это ::

img.setImageBitmap(bmp);
img.invalidate();

Надеюсь, это поможет вам

1 голос
/ 17 января 2012

Вы не можете обновить поток пользовательского интерфейса извне (другой поток). Я бы порекомендовал вам вместо этого вызвать метод в вашей деятельности для обновления ImageView.

Статья на эту тему: Безболезненная резьба

0 голосов
/ 21 ноября 2012

Я просмотрел несколько сообщений, прежде чем задал вопрос здесь.Это не причина, потому что я попробовал это раньше.Я предполагаю, что проблема заключается в способе отображения изображения.

У меня есть изображение на сервере, которое я заменяю на изображение, полученное от клиента.Проблема в том, что когда я отправляю изображение с клиента, изображение с сервера исчезает, даже если изображение не было получено полностью.

Полагаю, мне нужно сначала найти способ полностью получить изображение, а затем сразу выполнить img.SetBitmap (bmp);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...