android Paint 和Canvas的简单使用

public class DrawView extends View {
    public DrawView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint = new Paint();//定义默认画笔
        //线性渐变
        Shader shader = new LinearGradient(0,0,50,50, Color.RED,Color.GREEN,Shader.TileMode.MIRROR);
        paint.setShader(shader);//为画笔设置渐变器

        canvas.drawRect(10,70,100,150,paint);//绘画一个矩形
        //径向渐变
        shader = new RadialGradient(160,110,50,Color.RED,Color.GREEN,Shader.TileMode.MIRROR);
        paint.setShader(shader);//为画笔设置渐变器
        canvas.drawRect(115,70,205,150,paint);
        //角度渐变
        shader = new SweepGradient(265,110,new int[]{Color.RED,Color.GREEN,Color.BLUE},null);
        paint.setShader(shader);
        canvas.drawRect(220,70,310,150,paint);
    }

}

画奥运五环:

canvas.drawColor(Color.WHITE);//指定画布背景色为白色
Paint paint = new Paint();//创建画笔
paint.setAntiAlias(true);//使用抗锯齿功能
paint.setStrokeWidth(3);//设置笔触的宽度
paint.setStyle(Paint.Style.STROKE);//设置填充样式为描边
paint.setColor(Color.BLUE);
canvas.drawCircle(50,50, 30, paint);//绘制蓝色的圆形
paint.setColor(Color.YELLOW);
canvas.drawCircle(100,50,30,paint);//绘制黄色的圆形
paint.setColor(Color.BLACK);
canvas.drawCircle(150,50,30,paint);//绘制黑色的圆形
paint.setColor(Color.GREEN);
canvas.drawCircle(75,90,30,paint);//绘制绿色的圆形
paint.setColor(Color.RED);
canvas.drawCircle(125,90,30,paint);//绘制红色的圆形
绘制曲线
Paint paint = new Paint();//创建画笔
paint.setAntiAlias(true);//设置抗锯齿
paint.setColor(Color.RED);//设置画笔颜色
paint.setTextSize(18);//设置文字大小
paint.setStyle(Paint.Style.STROKE);//设置填充方式为描边
//绘制圆形路径图
Path path = new Path();//创建实例化一个Path对象
path.addCircle(70,70,40,Path.Direction.CCW);//添加逆时针圆形路径
canvas.drawPath(path,paint);//绘制路径
//绘制折线路径
Path pathLine = new Path();
pathLine.moveTo(150,100);//设置起始点
pathLine.lineTo(200, 45);//设置第一个直线结束点
pathLine.lineTo(250, 100);//设置第二个直线结束点
pathLine.lineTo(300,80);//设置第三个直线结束点
canvas.drawPath(pathLine,paint);//绘制路径
//绘制三角路径
Path pathTr = new Path();
pathTr.moveTo(350,80);//设置起始点
pathTr.lineTo(400, 0);//设置第一条边的结束点也就是第二条边的起始点
pathTr.lineTo(450, 80);//设置第二条的结束点也就是第三条边的起始点
pathTr.close();
canvas.drawPath(pathTr,paint);
//绘制绕路径的环形文字
String str = "嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿";
Path path1 = new Path();
path.addCircle(550,100,48,Path.Direction.CW);//添加顺时针圆形路径
paint.setStyle(Paint.Style.FILL);//设置画笔的 填充方式
canvas.drawTextOnPath(str,path1,0,-18,paint);

<com.weipeng.xuexi20160119.DrawView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值