我无法解决表面视图上的闪烁问题。我在SurfaceView上绘制绘图,就像在FingerPaint项目上一样。但是,SurfaceView上的双缓冲会导致视图闪烁。我尝试了之前回答的所有解决方案,但没有运气。我还尝试在表面画布上设置单个位图,但闪烁不会消失。这是要绘制的代码:
@Override
public void run() {
Canvas c = null;
while (_running) {
try {
c = holder.lockCanvas(null);
synchronized (holder) {
if (c == null) {
continue;
}
c.setBitmap(mBitmap);
doDraw(c);
}
} finally {
if (c != null) {
holder.unlockCanvasAndPost(c);
}
}
}
}
private void doDraw(Canvas canvas) {
if (canvas != null) {
canvas.drawPath(mPath, mPaint);
canvas.drawBitmap(mBitmap, 0, 0, mPaint);
}
}
任何帮助都很感激。提前致谢
答案 0 :(得分:0)
当我在某些地方用手指画画时,有时会出现闪烁现象。原因是MainUiThread和SurfaceView的抽屉线程同时绘制了同一个对象。这就是出现错误图纸的原因。同步对象后问题消失了。