0

好的,简要回顾一下,被要求创建一个用于记录数据特定数据并在完成后将其显示到屏幕上的工作应用程序。所以它会像这样运行。

press start > press stop > display results.

但是,我公司的 IT 主管刚刚告诉我,他希望以针状图显示信息(重力、平均速度、最高速度),并且还希望以一种华丽的方式来显示其他信息(所用时间、行驶距离)

我最初的想法是这样的:

创建一个像这样的针规测量,但在较小的范围内,并在图形下方或旁边显示数字值,并仅显示行进距离和所用时间,显示为闹钟式数字。这将全部在屏幕的左侧以细列的形式向下运行,然后有一张地图显示开始位置和结束位置以及旅程所采用的路线

基本上我希望它看起来像这样地图(抱歉绘图的粗糙)沿着这些线的东西会是完美的!

我想我可以计算出地图业务以及时间和距离读数的数字,但我从未做过任何真正花哨的 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. 要为速度创建动态标签,您也应该绘制它们
  3. ETC
于 2011-08-05T14:46:49.500 回答