设定:
Activity的布局有一个SurfaceView对象(obj),定义了SurfacHolder回调。 obj定义了以下线程(这是通过Xamarin用C#编写的):
void DrawThread() {
Canvas c;
while (drawingThreadActive) {
c=null;
try {
c = this.Holder.LockCanvas(null);
lock(Holder) {
//force redraw
PostInvalidate();
}
} finally {
if (c!=null) {
this.Holder.UnlockCanvasAndPost(c);
}
}
//sleep for 50 ms or so (20Hz refresh)
}
}
调用SurfaceCreated()
回调就好了,它启动了这个线程。但是,对PostInvalidate()的调用永远不会导致调用onDraw()
函数。
我很确定一切都设置正确 - 知道我缺少什么吗?
鉴于调用SurfaceCreated()
方法,我假设它'在UI中可见'
知道我缺少什么吗?
答案 0 :(得分:1)
在这里找到答案 - 这篇文章可以标记为重复。 :Android: SurfaceView ignoring postInvalidate()?
出于某种原因,SurfaceView默认为“它不会绘制”。在SetWillNotDraw(false)
修复{。}}。