ImageView控件运用

ImageView控件使用
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线程中