繁体   English   中英

setalpha 作为在 canvas 中绘制的 Paint 参数中的问题

[英]Problem in setalpha as a Paint parameter for draw in canvas

I have extend a class from View class to show in my activity I make a canvas and draw some circles in it This is my ondraw function for this class

override fun onDraw(canvas: Canvas?) {
        super.onDraw(canvas)
        canvas?.drawColor(Color.BLUE)
        circles.forEach {
            canvas?.drawCircle(it.xc,it.yc,it.radious,it.paint)
        }
    }

首先我为背景画一种颜色,然后我画我的圆圈这是我画的圆圈:

val circlePaint = Paint().apply {
        color = Color.MAGENTA
        style = Paint.Style.FILL
        alpha = 120
        setLayerType(LAYER_TYPE_SOFTWARE,this)
        setMaskFilter(BlurMaskFilter(30f,BlurMaskFilter.Blur.NORMAL))
    }

我的问题是当我运行活动时,“alpha = 120”对颜色背景和圆圈都有影响......所以我的背景颜色也在褪色......有人有解决方案吗?

最后我发现了问题。 如果您有类似的问题,当设置一个绘制 alpha 时,您的所有绘图 alpha 都会发生变化,您应该在您的绘制中更改此参数:

 setLayerType(LAYER_TYPE_SOFTWARE,this)

setLayerType(LAYER_TYPE_SOFTWARE,null)

而已 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM