Подтвердить что ты не робот

Динамически сгенерированная линия с эффектом свечения

Я хочу нарисовать линию с эффектом свечения как это
glow line
Проблема - я должен сгенерировать эту строку в программе в зависимости от взаимодействия пользователя (форма строки будет сгенерирована в onTouchEvent - ACTION_MOVE).

Могу ли я сгенерировать этот эффект без файлов xml или растрового изображения premaid?

4b9b3361

Ответ 1

Я подражаю этому эффекту следующим образом:

  • Строка рисования с BlurMaskFilter;
  • Нарисуйте над ним обычную линию.

Я использую класс Path для генерации строки и сохранения координат события MOVE_ACTION, чтобы генерировать только часть пути, что мне нужно.

Создать 2 Paint() s:

_paintSimple = new Paint();
_paintSimple.setAntiAlias(true);
_paintSimple.setDither(true);
_paintSimple.setColor(Color.argb(248, 255, 255, 255));
_paintSimple.setStrokeWidth(20f);
_paintSimple.setStyle(Paint.Style.STROKE);
_paintSimple.setStrokeJoin(Paint.Join.ROUND);
_paintSimple.setStrokeCap(Paint.Cap.ROUND);

_paintBlur = new Paint();
_paintBlur.set(_paintSimple);
_paintBlur.setColor(Color.argb(235, 74, 138, 255));
_paintBlur.setStrokeWidth(30f);
_paintBlur.setMaskFilter(new BlurMaskFilter(15, BlurMaskFilter.Blur.NORMAL)); 

И нарисуйте дважды мой Path():

@Override
protected void onDraw(Canvas canvas) {
    canvas.drawPath(mPath, _paintBlur);
    canvas.drawPath(mPath, _paintSimple);
}