簡體   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