Я создал простой пользовательский вид, который расширяется от 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);
Я хочу быть кривой красной линией, которую я упомянул на изображении, но мой код curve section
является ошибкой, и я не могу выбрать правильное число, чтобы создать правильную кривую .. Я думаю, что это неверные значения:
mFirstCurveControlPoint1.set(mFirstCurveStartPoint.x + 100 , mFirstCurveStartPoint.y);
mFirstCurveControlPoint2.set(mFirstCurveEndPoint.x -100 , mFirstCurveEndPoint.y);
Это метод ondraw:
@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);
}