Как нарисовать лог-график - PullRequest
       12

Как нарисовать лог-график

0 голосов
/ 17 октября 2018

Я хочу установить данные включения / выключения и времени отдыха в лог-графике следующим образом:

image

, а также пользователь может редактировать данные следующим образом:

image

1 Ответ

0 голосов
/ 17 октября 2018

вы можете рисовать на холсте в пользовательском представлении, расширенном из вида

enter image description here

java: void drawCanvas (Canvas canvas) {

    Paint paint;

    RectF bezierRect = new RectF(30.5f, 23.5f, 213.5f, 92.5f);
    Path bezierPath = new Path();
    bezierPath.moveTo(30.5f, 32.5f);
    bezierPath.lineTo(85.5f, 32.5f);
    bezierPath.lineTo(85.5f, 70.5f);
    bezierPath.lineTo(146.5f, 70.5f);
    bezierPath.lineTo(146.5f, 46.5f);
    bezierPath.lineTo(173.5f, 46.5f);
    bezierPath.lineTo(173.5f, 82.5f);
    bezierPath.lineTo(199.5f, 82.5f);
    bezierPath.lineTo(199.5f, 23.5f);
    bezierPath.lineTo(213.5f, 23.5f);
    bezierPath.lineTo(213.5f, 92.5f);

    paint = new Paint();
    paint.setStrokeWidth(1f);
    paint.setStrokeMiter(10f);
    canvas.save();
    paint.setStyle(Paint.Style.STROKE);
    paint.setColor(Color.BLACK);
    canvas.drawPath(bezierPath, paint);
    canvas.restore();
}

kotlin:

fun drawCanvas(canvas: Canvas) {

        val paint: Paint

        val bezierRect = RectF(30.5f, 23.5f, 213.5f, 92.5f)
        val bezierPath = Path()
        bezierPath.moveTo(30.5f, 32.5f)
        bezierPath.lineTo(85.5f, 32.5f)
        bezierPath.lineTo(85.5f, 70.5f)
        bezierPath.lineTo(146.5f, 70.5f)
        bezierPath.lineTo(146.5f, 46.5f)
        bezierPath.lineTo(173.5f, 46.5f)
        bezierPath.lineTo(173.5f, 82.5f)
        bezierPath.lineTo(199.5f, 82.5f)
        bezierPath.lineTo(199.5f, 23.5f)
        bezierPath.lineTo(213.5f, 23.5f)
        bezierPath.lineTo(213.5f, 92.5f)

        paint = Paint()
        paint.setStrokeWidth(1f)
        paint.setStrokeMiter(10f)
        canvas.save()
        paint.setStyle(Paint.Style.STROKE)
        paint.setColor(Color.BLACK)
        canvas.drawPath(bezierPath, paint)
        canvas.restore()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...