Я хочу иметь ImageView, содержащий изображение с закругленными кривыми, но не круглыми (что, конечно, проще) ..
Обозначенные X области должны быть черными, остальные должны оставаться синими. Это должно выглядеть (вроде) как это
Что я пробовал:
Я часами боролся с Path.quadTo
и Path.cubicTo
с помощью некоторых инструментов , но пока не добился успеха. Я просто не понимаю, если честно.
Как выглядит мой код:
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
val paint = Paint()
paint.color = Color.BLACK
paint.strokeWidth = 1f
paint.strokeCap = Paint.Cap.ROUND
paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP)
paint.style = Paint.Style.FILL
val fHeight = canvas.height.toFloat()
val startEndHeight = canvas.height / 1.18f
val fWidth = canvas.width.toFloat()
val halfWidth = (fWidth / 2)
val path = Path()
//X = Left side, Y = close to bottom
val ptStart = PointF(0f, startEndHeight)
//X = Middle, Y = Bottom
val ptMiddle = PointF(halfWidth, fHeight + 95)
// X = Right Side, Y = close to bottom
val ptEnd = PointF(fWidth, startEndHeight)
path.moveTo(ptStart.x, ptStart.y)
path.quadTo(ptMiddle.x, ptMiddle.y, ptEnd.x, ptEnd.y)
path.close()
canvas.drawPath(path, paint)
}
Это не может быть так сложно, верно?
Можно ли раскрасить отмеченные красным цветом области и оставить все остальное нетронутым?