更新图片时,出现异常

jike_0209901 Android 项目开发实战:... 最后由 极客学院_吕布 于2017年08月03日回复

  • 1 回答
  • 1.2k 浏览
public static void setPicBitmap(final ImageView ivpic,final String pic_url){new Thread(new Runnable() {@Override        public void run() {try {                HttpURLConnection conn = (HttpURLConnection) new URL(pic_url).openConnection();                conn.connect();                InputStream is = conn.getInputStream();                Bitmap bitmap = BitmapFactory.decodeStream(is);ivpic.setImageBitmap(bitmap);                is.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }).start();}
String pic_url = news.getPic_url();httpUtils.setPicBitmap(ivpic,pic_url);

                                          Process: com.example.hys.newsclient, PID: 4151

                                                 android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

                                                     at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6556)

                                                     at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:907)

                                                     at android.view.View.requestLayout(View.java:18722)

                                                     at android.view.View.requestLayout(View.java:18722)

                                                     at android.view.View.requestLayout(View.java:18722)

                                                     at android.view.View.requestLayout(View.java:18722)

                                                     at android.view.View.requestLayout(View.java:18722)

                                                     at android.view.View.requestLayout(View.java:18722)

                                                     at android.view.View.requestLayout(View.java:18722)

                                                     at android.widget.AbsListView.requestLayout(AbsListView.java:1975)

                                                     at android.view.View.requestLayout(View.java:18722)

                                                     at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:360)

                                                     at android.view.View.requestLayout(View.java:18722)

                                                     at android.widget.ImageView.setImageDrawable(ImageView.java:475)

                                                     at android.widget.ImageView.setImageBitmap(ImageView.java:605)

                                                     at com.example.hys.utils.httpUtils$2.run(httpUtils.java:59)

                                                     at java.lang.Thread.run(Thread.java:818)

07-01 12:50:13.368 950-950/? E/EGL_emulation: tid 950: eglCreateSyncKHR(1243): error 0x3004 (EGL_BAD_ATTRIBUTE)

07-01 12:50:13.373 1290-1325/? E/InputDispatcher: channel 'c99a9c com.example.hys.newsclient/com.example.hys.newsclient.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

07-01 12:50:13.578 1290-1800/? E/Surface: getSlotFromBufferLocked: unknown buffer: 0x9fcf5900

59行就是ivpic.setImageBitmap(bitmap)那行