commit 1789583647ea135be2aa3dd8c91a15836982abd8
parent 3b81f92b6623ef0f3cc62aaca1cec67468bcb219
Author: gstraube <gstraube@mailbox.org>
Date: Fri, 15 Dec 2017 16:00:55 +0100
Draw indicator as an arrowhead
Diffstat:
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/app/src/main/java/com/github/cythara/CanvasPainter.java b/app/src/main/java/com/github/cythara/CanvasPainter.java
@@ -3,7 +3,9 @@ package com.github.cythara;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
+import android.graphics.Matrix;
import android.graphics.Paint;
+import android.graphics.Path;
import android.graphics.drawable.Drawable;
import android.support.v4.content.ContextCompat;
import android.text.TextPaint;
@@ -133,9 +135,22 @@ class CanvasPainter {
private void drawIndicator() {
float xPos = x + (getNearestDeviation() * gaugeWidth / MAX_DEVIATION);
- String text = "|";
- canvas.drawText(text, xPos - numbersPaint.measureText(text) / 2F, y + 30,
- numbersPaint);
+ float yPosition = y * 1.15f;
+
+ Matrix matrix = new Matrix();
+ float scalingFactor = numbersPaint.getTextSize() / 3;
+ matrix.setScale(scalingFactor, scalingFactor);
+
+ Path indicator = new Path();
+ indicator.moveTo(0, -2);
+ indicator.lineTo(1, 0);
+ indicator.lineTo(-1, 0);
+ indicator.close();
+
+ indicator.transform(matrix);
+
+ indicator.offset(xPos, yPosition);
+ canvas.drawPath(indicator, gaugePaint);
}
private void drawMark(float y, float xPos, int mark) {