我正在尝试实现我自己的自定义SurfaceView,当触摸时,在用户触摸屏幕的位置绘制一个圆圈.但是,当我打电话时,mSurfaceHolder.lockCanvas()我得到一个例外.每当画布锁定时,就会出现非法参数.示例代码发布在下面.
public class TapArea extends SurfaceView implements SurfaceHolder.Callback {
private static final int TAP_RADIUS = 4;
private boolean mLoaded = false;
private Paint mTapPaint;
private SurfaceHolder mSurfaceHolder;
protected OnTouchListener mTouchEvent = new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if (!mLoaded)
return false;
Canvas c = null;
c = mSurfaceHolder.lockCanvas();
drawTap(c, arg1);
return true;
}
};
public TapArea(Context context, AttributeSet attrs) {
super(context, attrs);
this.setOnTouchListener(mTouchEvent);
mHandler = new Handler();
mSurfaceHolder = getHolder();
mSurfaceHolder.addCallback(this);
mTapPaint = …Run Code Online (Sandbox Code Playgroud)