package net.sadaji.speedmter; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class SpeedView extends View { private MainActivity m_Activity; //コンストラクタ SpeedView(Context context) { super(context); m_Activity = (MainActivity) context; } @Override protected void onDraw(Canvas canvas) { drawDistance(canvas); drawSpeed(canvas); drawAccuracy(canvas); drawAltitude(canvas); } private void drawText(Canvas canvas, String str, int x, int y) { Paint paint = new Paint(); paint.setAntiAlias(true); paint.setTextSize(56); paint.setColor(Color.BLACK); paint.setTextSize(160.0f); canvas.drawText(str, x, y, paint); } private void drawDistance(Canvas canvas) { String str; double distance = m_Activity.getTotalDistance(); if(distance >= 1000.0){ str = String.format("%.1f km", distance / 1000.0); } else{ str = String.format("%.1f m", distance); } drawText(canvas, "移動距離", 0, 200); drawText(canvas, str, 0, 350); } private void drawSpeed(Canvas canvas){ String str; double speed = m_Activity.getSpeed() * 3600 / 1000;//km str = String.format("%.0f km / h", speed); drawText(canvas, "速度", 0, 600); drawText(canvas, str, 0, 800); } private void drawAccuracy(Canvas canvas){ String str; double accuracy = m_Activity.getAccuracy(); str = String.format("%.0f m", accuracy); drawText(canvas, "精度", 0, 1000); drawText(canvas, str, 0, 1200); } private void drawAltitude(Canvas canvas){ String str; double altitude = m_Activity.getAltitude(); str = String.format("%.0f m", altitude); drawText(canvas, "標高", 0, 1400); drawText(canvas, str, 0, 1600); } }