android - trata - Línea generada dinámicamente con brillo efectivo.
video viral de la moto (1)
Quiero dibujar una línea con efecto de brillo como este
El problema: debo generar esta línea en el programa en función de la interacción del usuario (la forma de la línea se generará en onTouchEvent
- ACTION_MOVE
).
¿Puedo generar este efecto sin archivos xml o dibujar mapas de bits de premaid?
Imito este efecto de esta manera:
- Dibuja una línea con
BlurMaskFilter
; - Dibuja sobre ella la línea normal.
Utilizo la clase Path para generar líneas y guardar las coordenadas del evento MOVE_ACTION
para generar solo una parte de la ruta que necesito.
Crear 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));
Y dibuja dos veces mi Path()
:
@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(mPath, _paintBlur);
canvas.drawPath(mPath, _paintSimple);
}