美文网首页
Paint常用用法

Paint常用用法

作者: 我弟是个程序员 | 来源:发表于2017-08-07 23:41 被阅读0次

    效果图:

    效果图

    本文不是为了完成一个像上图一样的渣渣效果,只是简单说明一下Canvas 和Paint的基本使用记录。

    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.support.annotation.Nullable;
    import android.util.AttributeSet;
    import android.view.View;
    
    public class DrawView extends View {
    
        Paint mPaint;
    
        public DrawView(Context context) {
            super(context);
            init();
        }
    
        public DrawView(Context context, @Nullable AttributeSet attrs) {
            super(context, attrs);
            init();
        }
    
        private void init() {
    
            // 设置抗锯齿开关
    //        mPaint = new Paint(Paint.ANTI_ALIAS_FLAG );
    
            mPaint = new Paint();
            mPaint.setAntiAlias(true);      // 设置抗锯齿开关
    
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
    
            int x = getWidth() / 2;
            int y = getHeight() / 2;
    
            //画布颜色  类似的方法还有 drawRGB(int r, int g, int b) 和 drawARGB(int a, int r, int g, int b)
            // 这类颜色填充方法一般用于在绘制之前设置底色,或者在绘制之后为界面设置半透明蒙版。
            canvas.drawRGB(200,200,200);
    
            //设置绘制内容的颜色
            mPaint.setColor(Color.BLUE);
    
            //模式改为画线模式   FILL 是填充模式,STROKE 是画线模式(即勾边模式),FILL_AND_STROKE 是两种模式一并使用:既画线又填充。
            //它的默认值是 FILL,填充模式
            mPaint.setStyle(Paint.Style.STROKE);
    
            //在 STROKE 和 FILL_AND_STROKE 下,还可以使用 paint.setStrokeWidth(float width) 来设置线条的宽度
            mPaint.setStrokeWidth(20);
    
    
            canvas.drawRect(x / 2, x / 2, x * 1.5f, y * 1.5f, mPaint);
            mPaint.setColor(Color.YELLOW);
            canvas.drawLine(x / 2,x / 2,x * 1.5f, y * 1.5f, mPaint);
            mPaint.setColor(Color.GREEN);
            canvas.drawLine(x * 1.5f, y /2,x/2,y*1.5f,mPaint );
    
            mPaint.setColor(Color.BLUE);
            //点的形状可以通过  paint.setStrokeCap(cap) 来设置:ROUND 画出来是圆形的点,SQUARE 或 BUTT 画出来是方形的点。
            mPaint.setStrokeCap(Paint.Cap.ROUND );
            mPaint.setStrokeWidth(100);
            canvas.drawPoint(x,y,mPaint);
    
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Paint常用用法

          本文链接:https://www.haomeiwen.com/subject/iiezlxtx.html