我正在尝试制作一个简单的绘画应用。问题是,Android好像有三个独立的画布,并按顺序分配它们让我进行绘画。
我使用了
然后选择了表面。
我使用了
SurfaceView
制作UI,并从中取得了一个Holder来进行绘画。@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sv = (SurfaceView) findViewById(R.id.sv);
holder = sv.getHolder();
holder.addCallback(callback);
}
然后选择了表面。
@Override
public void surfaceCreated(SurfaceHolder holder) {
surface = holder.getSurface();
}
通过OnTouchListener()
事件绘制点和线。
private void paintStartDot(float x, float y) {
Canvas canvas = surface.lockCanvas(null);
canvas.drawPoint(x, y, drawPaint);
surface.unlockCanvasAndPost(canvas);
lastX = x;
lastY = y;
}
private void paintEndDot(float x, float y) {
Canvas canvas = surface.lockCanvas(null);
canvas.drawLine(lastX, lastY, x, y, drawPaint);
surface.unlockCanvasAndPost(canvas);
lastX = x;
lastY = y;
}
这个视频演示了:
有什么问题吗?