Android Paint的简单实用

首先要注意。
自定控件的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);                    //倾斜度

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值