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;
}
}我从服务器上下的图片,为什么只可以显示第一张图片。没有变换的效果。

解决方案 »

  1.   

    你这个run是在Thread线程里面的吗?如果是的话,肯定会出错了,你需要将显示图片的处理放到Handler里面进行。
      

  2.   

    你这个是多线程操作运行的内容,里面不能有涉及UI的部分也就是 
    myView = (ImageView) findViewById(R.id.mybutton);
     myView.setImageBitmap(bitmap);
    这两行要放到主线程,然而这两步是要在前面bitmap得到之后运行的,所以这种多线程的方式就不合适了。
    不用handler和runnable了吧,用asynotask类,前面多线程部分写在doinbackground里面,后面UI操作部分写在onPostExecute里面
      

  3.   

    android,更新UI的操作只能在UI线程中
      

  4.   

    asynotask类怎么用 ,,麻烦详细一点咯。
      

  5.   

    你这样搞是不行的 ,加载再更新UI这样是不能实现的 ,看看这个http://www.eoeandroid.com/thread-167997-1-1.html,然后再添加上最重要的asynctask 来读取下载图片资源(do in back....),并且更新UI(那个post 方法),自己写写吧,很简单的玩意