mini-cards/app/src/main/java/com/codigoparallevar/minicards/ScrolledCanvas.java
Sergio Martínez Portela 033b79cba1 Implement base connection to PrograMaker API.
- Login and check of the login token.
2020-05-19 19:19:26 +02:00

59 lines
1.9 KiB
Java

package com.codigoparallevar.minicards;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import androidx.annotation.NonNull;
import com.codigoparallevar.minicards.types.functional.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);
}
public void drawCenteredText(String text, int x, int y, Paint paint) {
paint.setTextAlign(Paint.Align.LEFT);
Rect r = new Rect();
paint.getTextBounds(text, 0, text.length(), r);
x = x + (int) (r.width() / 2f - r.left);
y = y + (int) (r.height() / 2f - r.bottom);
drawText(text, x, y, paint);
}
public void drawText(String text, int x, int y, Paint paint) {
canvas.drawText(text, x - xOrig, y - yOrig, paint);
}
}