Android Paint,Canvas api 详解

概述

我们通过在画布上绘画进行类比,如下:

Canvas:相当于画布,Bitmap提供内存,绘的画会保存在Bitmap中。
Paint:相当于画笔。

有了画笔和画笔我们就可以绘画了。

Paint 类常用方法

设置颜色

/**
 * 参数一:Android内部定义的有Color类包含了一些常见颜色定义
 * Color.RED 或者 getResources().getColor(android.R.color.holo_blue_bright)
 * 或者Color.rgb(255,100,100)或者Color.argb(50,255,100,100)
 */
paint.setColor(int color)  // 设置颜色
/**
 * 参数一:alpha透明值
 */
paint.setARGB(int a, int r, int g, int b) // 设置 Paint对象颜色

设置不透明度

paint.setAlpha(int a) // 设置alpha不透明度,范围为0~255

设置是否抗锯齿

paint.setAntiAlias(boolean aa) // 是否抗锯齿

设置文本缩放倍数

/**
 * 参数一:,1.0f为原始
 */
paint.setTextScaleX(float scaleX)  // 设置文本缩放倍数

设置字体大小

paint.setTextSize(float textSize)  // 设置字体大小

设置下划线

paint.setUnderlineText(booleanunderlineText)  // 设置下划线

设置实心还是空心

/**
 * 实心
 * /
paint.setStyle(Paint.Style.FILL);
/**
 * 空心
 * /
paint.setStyle(Paint.Style.STROKE);

设置画笔的粗细

paint.setStrokeWidth(10);

关键点:以上Paint的操作作用在下次绘画的画笔上

Canvas 常用方法

Canvas平移、缩放、旋转、画布的错切

关键点:Canvas平移、缩放、旋转操作作用在下次绘画的画布上

Canvas平移

/** 
 * 画布向(100,50)方向平移 
 *  
 * 参数1: 向X轴方向移动100距离 
 * 参数2: 向Y轴方向移动50距离   
 */
 canvas.translate(100, 50);

Canvas缩放

/** 
 * 在X轴方向放大为原来2倍,Y轴方向方大为原来的4倍 
 * 参数1: X轴的放大倍数 
 * 参数2: Y轴的放大倍数 
 */ 
canvas.scale(2, 4); 
/** 
 * 在X轴方向放大为原来2倍,Y轴方向方大为原来的4倍 
 * 参数1: X轴的放大倍数
 * 参数2: Y轴的放大倍数
 * 参数3: 原点在X坐标位置
 * 参数4: 原点在Y坐标位置
 */ 
canvas.scale(2, 4100,100);

这里写图片描述
Canvas旋转

/** 
 * 原点为中心,旋转30度(顺时针方向为正方向 )
 * 参数: 旋转角度 
 */
canvas.rotate(30);
/** 
 * 以(100,100)为中心,旋转30度,顺时针方向为正方向 
 * 参数: 旋转角度 
 */ 
canvas.rotate(30,100,100);

这里写图片描述

Canvas画布的错切

/**
 * 参数1:将画布在x方向上倾斜相应的角度,倾斜角度的tan值
 * 参数2:将画布在y方向上倾斜相应的角度,倾斜角度的tan值
canvas.skew(1,0);

实例

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    Paint p = new Paint();

    p.setColor(Color.argb(50,255,100,100));
    canvas.drawRect(0,0,200,200,p); // 以原始Canvas画出一个矩形1

    canvas.translate(300,300); // 将Canvas平移(300,300)
    p.setColor(Color.argb(50,100,255,100));
    canvas.drawRect(0,0,200,200<
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值