Создайте пользовательский вид, используя canvas и path в Android - PullRequest
0 голосов
/ 05 февраля 2019

Я хочу создать свой собственный вид.Вид, который имеет небольшую кривую синуса снизу, а сверху - просто другой вид с любым цветом, который я хочу выбрать.Как я хочу также выбрать цвет градиента для этого представления.

Что я пробовал

Я пробовал один SineView и другой WaveView в моем коде, но он не будетработать как положено.

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    int width = canvas.getWidth();
    int height = canvas.getHeight();
    canvas.save();
    canvas.translate(0, getMeasuredHeight() / 2F);
    canvas.clipRect(0, -100, 450, 100, Region.Op.INTERSECT);
    Path mPath = new Path();
    mPath.moveTo(0, 100);
    mPath.quadTo(50, -50, 100, 0);
    mPath.quadTo(150, 50, 200, 0);
    mPath.quadTo(250, -50, 300, 0);
    mPath.quadTo(350, 50, 400, 0);
    mPath.quadTo(450, -50, 500, 100);
    Paint paint = new Paint();
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(Color.GRAY);
    canvas.drawPath(mPath, paint);
    canvas.restore();
}

Ожидаемое представление

Expected view

Также я хочу, чтобы высота представления увеличивалась при переносе содержимого.Я не хочу увеличивать синусоидальную кривую, просто хочу увеличить высоту макета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...