LillteZheng
你好,首先非常感谢作者的自定义教程,让人受益匪浅;我这边有个疑问,像请问大大,就是如果我用 Canvas mCanvas = new Canvas(bitmap) ; 这种缓存画布去 mCanvas 去画线,在大屏上,比如触摸大屏,画线锯齿很严重;
#102 · closed · 3 comments
你好,首先非常感谢作者的自定义教程,让人受益匪浅;我这边有个疑问,像请问大大,就是如果我用 Canvas mCanvas = new Canvas(bitmap) ; 这种缓存画布去 mCanvas 去画线,在大屏上,比如触摸大屏,画线锯齿很严重;
查到的说法是,paint 设置抗锯齿,是把前背景和画线的背景添加透明度柔和画,所以颗粒感变弱,曲线看起来柔顺;而通过 mCanvas.drawPath(),再用canvas.drawBitmap(bitmap,0,0,null) 刷画布时,在move 的时候,锯齿就会变得越来越严重;但直接使用 canvas.drawpath则不会。
google 之后,说道是paint设置了抗锯齿,canvas 在画的时候,其实会清一下画布;而在使用 mCanvas 的时候,由于一直 drawbitmap,并没有清理画布,则导致本该透明柔顺的颗粒,变得越来越明显,所以用 bitmap 去画线锯齿才那么严重
目前,我使用的方法是,move 的path ,直接使用 canvas.drawpath(),直接画,而在 up 的时候,通过 mCanvas.drawpath()把path 画到bitmap上,再用 canvas.drawbitmap();但这种在多指的时候,会出现闪烁问题,请问楼主除了我这样做,还有其他方法吗,万分感谢