Android Path не закрывается, я не могу залить цветом - PullRequest
0 голосов
/ 02 июля 2019

У меня есть пользовательский вид Squircle android. Я рисую Путь, но не могу заполнить путь цветом. StackOverflow просит меня предоставить более подробную информацию, но я не думаю, что смогу объяснить это лучше. Все, что мне нужно, это заполнить путь кодом. Если вам нужно увидеть весь класс, дайте мне знать.

init {
    val typedValue = TypedValue()
    val theme = context!!.theme
    theme.resolveAttribute(R.attr.colorAccentTheme, typedValue, true)
    paint.color = typedValue.data
    paint.strokeWidth = 6f
    paint.style = Paint.Style.FILL_AND_STROKE
    paint.isAntiAlias = true
    shapePadding = 10f
}

open fun onLayoutInit() {
    val hW = (this.measuredW / 2) - shapePadding
    val hH = (this.measuredH / 2) - shapePadding

    /*
    Returns a series of Vectors along the path 
    of the squircle
     */
    points = Array(360) { i ->
        val angle = toRadians(i.toDouble())
        val x = pow(abs(cos(angle)), corners) * hW * sgn(cos(angle))
        val y = pow(abs(sin(angle)), corners) * hH * sgn(sin(angle))
        Pair(x.toFloat(), y.toFloat())
    }
    /*
    Match the path to the points
     */
    for (i in 0..points.size - 2) {
        val p1 = points[i]
        val p2 = points[i + 1]
        path.moveTo(p1.first, p1.second)
        path.lineTo(p2.first, p2.second)
    }

    /*
    Finish closing the path's points
     */
    val fst = points[0]
    val lst = points[points.size - 1]

    path.moveTo(lst.first, lst.second)
    path.lineTo(fst.first, fst.second)

    path.fillType = Path.FillType.EVEN_ODD

    path.close()

    postInvalidate()
}
override fun onDraw(canvas: Canvas?) {

    canvas?.save()
    canvas?.translate(measuredW / 2, measuredH / 2)
    canvas?.drawPath(path, paint)
    canvas?.restore()

    super.onDraw(canvas)

}

}

Ход контура работает нормально, но я не могу залить его цветом.

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