ImageView控件运用
ImageView控件使用
我从服务器上下的图片,为什么只可以显示第一张图片。没有变换的效果。
------解决方案--------------------
你这个run是在Thread线程里面的吗?
如果是的话,肯定会出错了,你需要将显示图片的处理放到Handler里面进行。
------解决方案--------------------
你这个是多线程操作运行的内容,里面不能有涉及UI的部分也就是
myView = (ImageView) findViewById(R.id.mybutton);
myView.setImageBitmap(bitmap);
这两行要放到主线程,然而这两步是要在前面bitmap得到之后运行的,所以这种多线程的方式就不合适了。
不用handler和runnable了吧,用asynotask类,前面多线程部分写在doinbackground里面,后面UI操作部分写在onPostExecute里面
------解决方案--------------------
android,更新UI的操作只能在UI线程中
- Java code
public void run() { while (true) { byte[] data; try { image_path = ServiceDate.getServlet(String.valueOf(kk)); String path2; path2 = path + image_path.getImage_name(); System.out.println(path2); data = ServiceDate.getImage(path2); Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); myView = (ImageView) findViewById(R.id.mybutton); myView.setImageBitmap(bitmap); path2 = ""; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } kk++; if (kk == 4) { kk = 0; } }
我从服务器上下的图片,为什么只可以显示第一张图片。没有变换的效果。
------解决方案--------------------
你这个run是在Thread线程里面的吗?
如果是的话,肯定会出错了,你需要将显示图片的处理放到Handler里面进行。
------解决方案--------------------
你这个是多线程操作运行的内容,里面不能有涉及UI的部分也就是
myView = (ImageView) findViewById(R.id.mybutton);
myView.setImageBitmap(bitmap);
这两行要放到主线程,然而这两步是要在前面bitmap得到之后运行的,所以这种多线程的方式就不合适了。
不用handler和runnable了吧,用asynotask类,前面多线程部分写在doinbackground里面,后面UI操作部分写在onPostExecute里面
------解决方案--------------------
android,更新UI的操作只能在UI线程中