Android Paint的简单实用

来源:互联网 发布:360n5手机怎么样 知乎 编辑:程序博客网 时间:2024/05/22 10:28

首先要注意。
自定控件的PaintView要继承自View,所画的内容才会正常显示出来。如果继承ViewGroup默认是不调用onDraw()方法的。

1 构造Paint

 private Paint mPaint;    public PaintView(Context context, AttributeSet attrs) {        super(context, attrs);        mPaint = new Paint();    }

2 画圆

 @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        mPaint.reset();                 //重置        mPaint.setColor(Color.RED);     //设置画笔颜色        mPaint.setAlpha(255);            //设置透明度  0-255        float centerx = getWidth()/2; //中心点x坐标        float centerY = getHeight()/2;//中心点y坐标        canvas.drawCircle(centerx, centerY, 100, mPaint);    }

这里写图片描述

3 设置画笔填充样式

  mPaint.setStyle(Paint.Style.STROKE);//描边

这里写图片描述
其他两种样式

填充并描边

mPaint.setStyle(Paint.Style.FILL_AND_STROKE);

填充

mPaint.setStyle(Paint.Style.FILL);

4 设置画笔宽度

 mPaint.setStrokeWidth(20); //画笔的宽度

这里写图片描述

5 path

Path path = new Path(); path.moveTo(100, 100); path.lineTo(300, 100); path.lineTo(300, 300); path.lineTo(100,300); mPaint.setStrokeJoin(Paint.Join.MITER); //拐角形状 直线 canvas.drawPath(path, mPaint);

这里写图片描述

6 拐角形状

  mPaint.setStrokeJoin(Paint.Join.ROUND);//拐角形状 圆弧

这里写图片描述

mPaint.setStrokeJoin(Paint.Join.BEVEL);  //锐角

这里写图片描述

看下图 更易懂
这里写图片描述
6 线帽

  mPaint.setStrokeCap(Paint.Cap.ROUND); //圆帽

这里写图片描述

mPaint.setStrokeCap(Paint.Cap.SQUARE); //平帽

这里写图片描述

mPaint.setStrokeCap(Paint.Cap.BUTT);//没有帽

这里写图片描述

看下图更易懂
这里写图片描述

文字绘制
1 字符间距

    float letterSpace = 2.0f;    mPaint.setLetterSpacing(letterSpace); //设置字符间距    canvas.drawText("德玛西亚必胜!", centerx-100, centerY, mPaint);

这里写图片描述

Log.i("PaintView", "字符间距" + mPaint.getLetterSpacing());

打印结果:

com.yeliang.app03_paint I/PaintView: 字符间距2.0

2 字体相关

 mPaint.setTextSize(20);                         //设置文字大小 mPaint.setTypeface(Typeface.DEFAULT_BOLD);      //粗体

这里写图片描述

mPaint.setTextSkewX(-0.25f);                    //倾斜度

这里写图片描述

原创粉丝点击