Sub drawLineAsNeon(canvasArg As Canvas, x1 As Float, y1 As Float, x2 As Float, y2 As Float, tubeWidth As Float, glowWidth As Float, colorArg As Int)
Dim canvasJO, paintJO, blurMaskFilterJO As JavaObject
canvasJO = canvasArg
canvasJO = canvasJO.GetField("canvas")
paintJO.InitializeNewInstance("android.graphics.Paint", Null)
paintJO.RunMethod("setStrokeCap", Array("ROUND"))
paintJO.RunMethod("setColor", Array(colorArg))
'draw the outer glow
paintJO.RunMethod("setStrokeWidth", Array(glowWidth))
glowWidth = Max(glowWidth, 1) 'BlurMaskFilter can't handle zero width
blurMaskFilterJO.InitializeNewInstance("android.graphics.BlurMaskFilter", Array(glowWidth, "NORMAL"))
paintJO.RunMethod("setMaskFilter", Array(blurMaskFilterJO))
canvasJO.RunMethod("drawLine", Array As Object(x1, y1, x2, y2, paintJO))
'draw the inner line
paintJO.RunMethod("setStrokeWidth", Array(tubeWidth))
tubeWidth = Max(tubeWidth, 1) 'BlurMaskFilter can't handle zero width
blurMaskFilterJO.InitializeNewInstance("android.graphics.BlurMaskFilter", Array(tubeWidth, "SOLID"))
paintJO.RunMethod("setMaskFilter", Array(blurMaskFilterJO))
canvasJO.RunMethod("drawLine", Array As Object(x1, y1, x2, y2, paintJO))
End Sub