我有一个帖子,我将逐一获得一些Bitmap
。然后每当我得到一个新的Bitmap
时,我需要更新主线程中的SurfaceView
。我怎么能这样做?
答案 0 :(得分:0)
这是一些伪代码
new Thread() {
public void run() {
while (bitmapIncoming()) {
Bitmap bitmap = getNextBitmapAfterLongOperation();
mActivityReference.runOnUiThread(new Runnable() {
public void run() {
mActivityReference.updateSurfaceView(bitmap);
}
});
}
}
}.start();
答案 1 :(得分:-1)
在线程中,创建一个公共接口,定义每次检索位图时调用的函数(来自我假设的互联网),如:
public interface ImageRetrievedListener{
public void onImageReceived(Bitmap bitmap);
}
在您使用Surface视图的Activity中实现此方法,并在onImageReceived回调中,将接收到的Bitmap添加到SurfaceView使用的位图数组中。应该工作,如果你还有任何问题,请告诉我。
// EDIT 不确定这是否是解决此问题的最佳解决方案,但我会以这种方式解决。