How to make canvas transparent in Android?

前端 未结 1 1573
温柔的废话
温柔的废话 2021-02-11 07:32

I want to make the drawing surface of my app transparent so that the my app can look like the user can draw on top of my background image, I have the following XML:



        
1条回答
  •  清歌不尽
    2021-02-11 08:11

    package com.logistics.kiddiekuts.Trans;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.graphics.RectF;
    import android.graphics.Paint.Style;
    import android.util.AttributeSet;
    import android.widget.RelativeLayout;
    
    public class TransparentPanel extends RelativeLayout {
        private Paint innerPaint, borderPaint;
    
        public TransparentPanel(Context context, AttributeSet attrs) {
            super(context, attrs);
            init();
        }
    
        public TransparentPanel(Context context) {
            super(context);
            init();
        }
    
        private void init() {
            innerPaint = new Paint();
            innerPaint.setARGB(225, 225, 225, 225); // gray
            innerPaint.setAntiAlias(true);
    
            borderPaint = new Paint();
            borderPaint.setARGB(255, 255, 255, 255);
            borderPaint.setAntiAlias(true);
            borderPaint.setStyle(Style.STROKE);
            borderPaint.setStrokeWidth(2);
        }
    
        public void setInnerPaint(Paint innerPaint) {
            this.innerPaint = innerPaint;
        }
    
        public void setBorderPaint(Paint borderPaint) {
            this.borderPaint = borderPaint;
        }
    
        protected void dispatchDraw(Canvas canvas) {
    
            RectF drawRect = new RectF();
            drawRect.set(0, 0, getMeasuredWidth(), getMeasuredHeight());
    
            canvas.drawRoundRect(drawRect, 8, 8, innerPaint);
            // canvas.drawRoundRect(drawRect, 5, 5, borderPaint);
    
            super.dispatchDraw(canvas);
        }
    }
    

    XML::

                    
                    
    
                    
                    
    
                    
                    
    
    
                    
    
                    
    
    
                    
    
                    
    
    
                    
    
                    
                    
                    
                
    

    0 讨论(0)
提交回复
热议问题