Keep ширина Canvas
«s то же самое и использовать canvas.translate()
метод, когда на самом деле рисунок.
Итак, допустим, у вас есть Rect rect
, содержащий прямоугольник для рисования (границы которого может превышать в View
), а также int horizontalOffset = 0
как переменный, содержащее смещение вашего рисунка прямоугольника, который будет скорректирован как пользователь касается View
.
Теперь, когда onDraw(Canvas)
называется:
@Override
public void onDraw(Canvas canvas){
super.onDraw(canvas);
canvas.save();
canvas.translate(horizontalOffset, 0);
canvas.drawRect(rect, paint);
canvas.restore();
}
Затем вы можете переопределить onTouch(View, MotionEvent)
вычислить горизонтальное смещение на основе сенсорного события, а затем invalidate()
View
.
Примечание: это явно только рисунок Rect
, но вы должны быть в состоянии изменить то, что я сделал там, чтобы рисовать все, что вы рисуете. Важными частями являются (по порядку) save()
, translate()
, draw
, restore()
.