Пользовательский вид с тенью, выходящей за пределы круга - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь создать пользовательский вид с теневым текстом.

enter image description here

Как видите, тень выходит из круга.Я хочу, чтобы тень была внутри круга.

Круг является фоном вида.То, что я устанавливаю из xml

android:background="@drawable/background"

, вот мой метод onDraw

override fun onDraw(canvas: Canvas) {

    paint.color = shadowColor
    for (shadow in shadowList) {
        canvas.drawText(text, width / 2 - textBound.width() / 2 + shadow.dx, height / 2 + textBound.height() / 2 + shadow.dy, paint)
    }

    paint.color = textColor
    canvas.drawText(text, (width / 2 - textBound.width() / 2).toFloat(), (height / 2 + textBound.height() / 2).toFloat(), paint)
}

Чего я хочу добиться, так это тени, находящейся внутри круга.

1 Ответ

0 голосов
/ 28 июля 2019

Если фон для рисования соответствует размеру вашего вида.Вы должны найти радиус круга в вашем случае, вы должны принять значение половины ширины или высоты вида.Тогда вместо того, чтобы рисовать все тени в shadowList, вы должны рисовать только тени, сидящие в круге.Для его расчета вы можете использовать правый нижний угол вашего обзора.Расстояние от угла до центральной точки должно быть равно или меньше радиуса круга, о котором я говорил выше.

...