Создать макет кривой customView

Я создал простое пользовательское представление, которое я расширяю от RelativeLayout.

Я создал эту форму:

        firstPoint.set(0,100);
        secondPoint.set(getWidth(),100);
        thirdPoint.set(getWidth(),getHeight());
        fourthPoint.set(0,getHeight());

        mFirstCurveStartPoint.set((getWidth() / 5) * 4 , 100);
        mFirstCurveEndPoint.set((getWidth() /6) * 5, 0);

        mFirstCurveControlPoint1.set(mFirstCurveStartPoint.x + 100  , mFirstCurveStartPoint.y);
        mFirstCurveControlPoint2.set(mFirstCurveEndPoint.x -100 , mFirstCurveEndPoint.y);

Создать макет кривой customView

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

 mFirstCurveControlPoint1.set(mFirstCurveStartPoint.x + 100  , mFirstCurveStartPoint.y);
 mFirstCurveControlPoint2.set(mFirstCurveEndPoint.x -100 , mFirstCurveEndPoint.y);

Это метод рисования:

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    mPath.lineTo(firstPoint.x,firstPoint.y);
    mPath.lineTo(mFirstCurveStartPoint.x,mFirstCurveStartPoint.y);
    mPath.lineTo(mFirstCurveEndPoint.x,mFirstCurveEndPoint.y);

    mPath.cubicTo(mFirstCurveControlPoint1.x, mFirstCurveControlPoint1.y,
            mFirstCurveControlPoint2.x, mFirstCurveControlPoint2.y,
            mFirstCurveEndPoint.x, mFirstCurveEndPoint.y);

    mPath.lineTo(thirdPoint.x,thirdPoint.y);
    mPath.lineTo(fourthPoint.x,fourthPoint.y);
    mPath.close();
    canvas.drawPath(mPath,mPaint);
}

какую форму вы хотите нарисовать? закругленная панель вкладок? почему бы не использовать NinePatchDrawable?

pskink 12.11.2018 09:15

Я не знаю о NinePatchDrawable. Я хочу создать путь кривой, такой как линия чтения, для первого шага и для шага, чтобы создать другую линию пути кривой, обратную шагу 1. Я хочу сделать форму купола верхней частью моего слоя. Это другой вопрос stackoverflow.com/questions/53246536/… I хочу сделать этот лайтер @pskink

Cyrus the Great 12.11.2018 09:24

path.moveTo (10, 80); path.rCubicTo (30, 0, 30, -70, 70, -70); path.rCubicTo (40, 0, 40, 70, 70, 70);

pskink 12.11.2018 09:34

чувак, это пример или он работает в моем коде? @pskink

Cyrus the Great 12.11.2018 09:41

чувак, у тебя есть какой-нибудь учебник для чтения, я понятия не имею, с кем работает твой код. .Спасибо большое @ pskink

Cyrus the Great 12.11.2018 17:03

прочитать документацию по классу Path

pskink 12.11.2018 17:35

Я видел этот developer.android.com/reference/android/graphics/Path, но это просто методы написания, и нет никаких объяснений и примеров @pskink

Cyrus the Great 12.11.2018 17:40

Спасибо чувак . вы и этот инструмент помогите мне разобраться в этом предмете blogs.sitepointstatic.com/examples/tech/canvas-curves/…

Cyrus the Great 13.11.2018 07:24
0
9
108
0

Другие вопросы по теме