2011-06-08 5 views
25

quiero llamar la línea con efecto de brillo como esto
glow line
El problema - i debe 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).línea generada dinámicamente, con luz efectiva

¿Puedo generar este efecto sin archivos xml o dibujar mapa de bits premaide?

Respuesta

60

I imitan este efecto de esta manera:

  1. línea Draw con BlurMaskFilter;
  2. Dibuja sobre la línea normal.

Utilizo la clase de ruta para generar líneas y guardar 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 sacar el doble de mi Path():

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

pueden darle más código? – pengwang

+0

seguro. Editado mi respuesta. – sharl

+0

¿Qué es ** mPath **? hice nuevas var. con el mismo nombre Ruta mPath = new Ruta(); ¡sin cambios! – Realbitt

Cuestiones relacionadas