Я пытаюсь сделать простой художник. Проблема в том, что он выглядит как Android, имеет три независимых холста и дает мне его для рисования последовательно.Как нарисовать холст из SurfaceView?
Я сделал интерфейс с SurfaceView
, взял у него держатель.
@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;
}
скринкаст:
Что не так?
Полный источник доступен здесь: https://github.com/tseglevskiy/canvasdemo1/blob/error/app/src/main/java/ru/jollydroid/canvasdemo1/MainActivity.java
Более подробная информация о пользовательских просмотров: http://developer.android.com/training/custom-views/index.html – fadden