如何在android中刷新imageview

时间:2012-01-02 17:06:28

标签: android android-imageview

我想在从socket接收的bytearray上刷新imageview

new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                while (!socket.isClosed()) {
                    imgArray = receiveImagebytes();
                }
            }
        }).start();

        try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


while (!socket.isClosed()) {
            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub

                    imageView.setImageBitmap(BitmapFactory.decodeByteArray(imgArray, 0, imgArray.length));
                    imageView.invalidate();
                }
            });

imgArray是另一个线程中收到的bytearray。我想刷新imageview ..但它不工作..它保持相同的默认图标

2 个答案:

答案 0 :(得分:1)

图像始终相同,或者只出现一次。 因为如果您从正确的位置正确触发了上述代码,则必须刷新imageView。

尝试以不同的方式调试它,刷新的代码是可以的。

答案 1 :(得分:1)

对不起。问题是上面的代码在主线程中,因此阻止了对UI的所有响应。

当我将代码移动到主线程中的线程时,问题就解决了。现在它正常工作。

感谢所有回复