mini-cards/app/src/main/java/com/codigoparallevar/minicards/ScrolledCanvas.java
2018-01-18 22:15:54 +01:00

44 lines
1.4 KiB
Java

package com.codigoparallevar.minicards;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.support.annotation.NonNull;
import com.codigoparallevar.minicards.types.Tuple2;
public class ScrolledCanvas {
private final Canvas canvas;
private final int xOrig;
private final int yOrig;
public ScrolledCanvas(Canvas canvas, Tuple2<Integer, Integer> viewOrigin) {
this.canvas = canvas;
this.xOrig = viewOrigin.item1;
this.yOrig = viewOrigin.item2;
}
public void drawLine(float startX, float startY, float stopX, float stopY,
@NonNull Paint paint) {
canvas.drawLine(startX - xOrig, startY - yOrig,
stopX - xOrig, stopY - yOrig, paint);
}
public void drawRect(@NonNull Rect r, @NonNull Paint paint) {
canvas.drawRect(r.left - xOrig, r.top - yOrig,
r.right - xOrig, r.bottom - yOrig,
paint);
}
public void drawCircle(float cx, float cy, float radius, @NonNull Paint paint) {
canvas.drawCircle(cx - xOrig, cy - yOrig,
radius, paint);
}
public void drawPath(@NonNull Path path, @NonNull Paint paint) {
Path offsetPath = new Path(path);
offsetPath.offset(-xOrig, -yOrig);
canvas.drawPath(offsetPath, paint);
}
}