我想在从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 ..但它不工作..它保持相同的默认图标
答案 0 :(得分:1)
图像始终相同,或者只出现一次。 因为如果您从正确的位置正确触发了上述代码,则必须刷新imageView。
尝试以不同的方式调试它,刷新的代码是可以的。
答案 1 :(得分:1)
对不起。问题是上面的代码在主线程中,因此阻止了对UI的所有响应。
当我将代码移动到主线程中的线程时,问题就解决了。现在它正常工作。
感谢所有回复