package org.tensorflow.demo; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.util.TypedValue; import android.view.View; import org.tensorflow.demo.Classifier.Recognition; import java.util.List; public class RecognitionScoreView extends View { private static final float TEXT_SIZE_DIP = 24; private List results; private final float textSizePx; private final Paint fgPaint; private final Paint bgPaint; public RecognitionScoreView(final Context context, final AttributeSet set) { super(context, set); textSizePx = TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, TEXT_SIZE_DIP, getResources().getDisplayMetrics()); fgPaint = new Paint(); fgPaint.setTextSize(textSizePx); bgPaint = new Paint(); bgPaint.setColor(0xcc4285f4); } public void setResults(final List results) { this.results = results; postInvalidate(); } @Override public void onDraw(final Canvas canvas) { final int x = 10; int y = (int) (fgPaint.getTextSize() * 1.5f); canvas.drawPaint(bgPaint); if (results != null) { for (final Recognition recog : results) { canvas.drawText(recog.getTitle() + ": " + recog.getConfidence(), x, y, fgPaint); y += fgPaint.getTextSize() * 1.5f; } } } }