0

OK、簡単な要約、データ固有のデータを記録し、終了時に画面に表示する作業用アプリを作成するように依頼されました。したがって、そのように機能します。

press start > press stop > display results.

しかし、会社の IT 責任者から、情報を針グラフ (G 力、平均速度、最高速度) で表示し、他の情報 (所要時間、移動距離) を派手に表示したいと言われました。 )

私の最初のアイデアはこれです:

このような針ゲージを作成しますゲージが、目盛りは小さく、グラフの下または横に数字の値を表示し、移動距離と所要時間を目覚まし時計スタイルの数字として表示します。これはすべて、画面の左側にある細い列で実行され、その後、旅のルートを含む開始場所と終了場所を表示する地図が表示されます。

基本的にはこんな感じでお願いします地図(下手くそですみません) この線に沿ったものがあれば完璧です!

マップ ビジネスと、時間と距離の読み取り用の数字を解決できると思いますが、本当に凝った UI を行ったことはありません。

ニードル ゲージの作成を開始するにはどうすればよいですか?

横棒ゲージを試してみようかな?針ゲージが動かない場合に備えて。

また、火曜日までしかありません!:S

4

1 に答える 1

1

次の非常に基本的なアイデアを構想します。

針のないゲージである背景画像を持つカスタムビューがあります!

したがって、最初に拡張するクラスを使用してこれを実装しますView

public class ourGauge extends View {

    private Bitmap bgImage = null;

    public ourGauge(Context context, Bitmap bgImage) {
        super(context);
        this.bgImage = bgImage;
    }

    public ourGauge(Context context) {
        super(context);
    }

    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawBitmap(bgImage, 0, 0, null);
    }

}

を追加しましょう

public class ourGauge extends View {

    private Bitmap bgImage = null;
    private int indicator;
    Paint paint = new Paint(); 

    public ourGauge(Context context, Bitmap bgImage) {
        super(context);
        this.bgImage = bgImage;
    }

    public ourGauge(Context context) {
        super(context);
    }

    public void setIndicator(int indicator){
        this.indicator = indicator;
        invalidate();
    }

    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawBitmap(bgImage, 0, 0, null);
        //you could set color based on indicator (speed or sth)
        paint.setColor(Color.BLACK); 
        canvas.drawLine(0, 0, 20, 20, paint);
        //you have to find the formula to get from where to where the line should drawn
    }

}

それをより良くするために

  1. を使って針を描くのではdrawLineなく、寸法のある形にします
  2. 速度の動的ラベルを作成するには、それらも描画する必要があります
于 2011-08-05T14:46:49.500 に答える