Я создал простое пользовательское представление, которое я расширяю от 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);
Это метод рисования:
@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. Я хочу создать путь кривой, такой как линия чтения, для первого шага и для шага, чтобы создать другую линию пути кривой, обратную шагу 1. Я хочу сделать форму купола верхней частью моего слоя. Это другой вопрос stackoverflow.com/questions/53246536/… I хочу сделать этот лайтер @pskink
path.moveTo (10, 80); path.rCubicTo (30, 0, 30, -70, 70, -70); path.rCubicTo (40, 0, 40, 70, 70, 70);
чувак, это пример или он работает в моем коде? @pskink
чувак, у тебя есть какой-нибудь учебник для чтения, я понятия не имею, с кем работает твой код. .Спасибо большое @ pskink
прочитать документацию по классу Path
Я видел этот developer.android.com/reference/android/graphics/Path, но это просто методы написания, и нет никаких объяснений и примеров @pskink
см. en.wikipedia.org/wiki/B%C3%A9zier_curve или javascript.info/bezier-curve или pomax.github.io/bezierinfo
Спасибо чувак . вы и этот инструмент помогите мне разобраться в этом предмете blogs.sitepointstatic.com/examples/tech/canvas-curves/…
какую форму вы хотите нарисовать? закругленная панель вкладок? почему бы не использовать
NinePatchDrawable?