美文网首页
Android_Canvas画布总结

Android_Canvas画布总结

作者: 书虫大王X | 来源:发表于2019-10-28 22:16 被阅读0次
    简介

    在自定义 View的时候,我们经常需要绘制一些自己想要的效果。
    这时就需要使用Canvas对象。canvas可以理解为一个画布,用于乘载自定义的控件。
    下面将Canvas对象常用方法做个笔记,方便记忆。

    一、Canvas常用方法:

    1.canvas一般是onDraw方法默认提供的,在不对canvas进设置的前提下,canvas一般是与所在的视图大小相等。
    2.对canvas进行设置:

    • 移动canvas:
     canvas.translate(100, 50);
    
    • 缩放canvas:
    /** 
     * 在X轴方向放大为原来2倍,Y轴方向方大为原来的4倍  
     */
    canvas.scale(2, 4);
    
    • 旋转canvas:
    /** 
     * 以(100,100)为中心,旋转30度,顺时针方向为正方向 
     */
    canvas.rotate(30,100,100);
    
    • 保存上一次绘制(画布),保证下一次绘制不影响上一次的画
    canvas.save();
    

    3.用canvas画图形:

    • 画圆:
    /**
     * 参数1:圆心X 
     * 参数2:圆心Y 
     * 参数3:半径R 
     * 参数4:画笔对象 
     */           
    canvas.drawCircle(200, 200, 100, p); 
    
    • 画线:
    /* 
     * 参数1:startX 
     * 参数2:startY 
     * 参数3:stopX 
     * 参数4:stopY 
     * 参数5:画笔对象 
     */   
    canvas.drawLine(100, 100, 300, 300, p);
    /* 
     * 同时绘制多条线。 
     * 参数1:float数组:每四个一组为一条线。最后不足四个,就忽略那些值。 
     * 参数2:画笔对象 
     */  
    canvas.drawLines(new float[]{100,100,200,200,200,100,300,100}, p);  
    
    • 画椭圆:
    /* 
     *  参数1:椭圆左边到视图左边框的距离
     *  参数2:椭圆上边到视图上边框的距离
     *  参数3:椭圆右边到视图左边框的距离 
     *  参数4:椭圆下边到视图上边框的距离 
     */  
    RectF oval = new RectF(150, 200, 500, 400);// 画一个椭圆  
    canvas.drawOval(oval, p);  
    )// 绘制圆
    //参数一是中心点的x轴,参数二是中心点的y轴,参数三是半径,参数四是paint对象
    drawCircle(float cx, float cy, float radius,Paint paint);
    
    • 画矩形:
    /** 
     * 参数与上面画椭圆的一样
     */  
    canvas.drawRect(100,100, 200, 200, p);  
        
    //画圆角矩形    
    RectF oval3 = new RectF(80, 260, 200, 300);// 设置个新的长方形    
    canvas.drawRoundRect(oval3, 20, 5, p);//第二个参数是x半径,第三个参数是y半径 
    
    • 画点:
    /** 
     * 参数1、2:点的x、y坐标 
     */  
    canvas.drawPoint(60, 390, p);//画一个点    
    /** 
     * 参数1:多个点,每两个值为一个点。最后个数不够两个的值,忽略。 
     */  
    canvas.drawPoints(new float[]{60,400,65,400,70,400}, p);//画多个点 
    
    • 画文字:
    /** 
     * 参数2:文本的x轴的开始位置 
     * 参数2:文本Y轴的结束位置 
     * 参数3:画笔对象 
     */  
    canvas.drawText("开始写字了!",50, 50, p);// 画文本  
    /** 
     * 参数2:路径 
     * 参数3:距离路径开始位置的偏移量 
     * 参数4:距离路径上下的偏移量(可以为负数) 
     * 参数5:画笔对象 
     */  
    canvas.drawTextOnPath("1234567890101123123", path, 0, -50, p);
    
    • 画图片:
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.图片名);   
    /** 
     * 参数1:bitmap图片对象 
     * 参数2:图像左边坐标点 
     * 参数3:图像上边坐标点 
     */  
    canvas.drawBitmap(bitmap, 200,300, p); 
    

    4.虽然canvas可以用来画一些图形,但常用的方法还是drawPath方法,用来画path路径。
    5.canvas一般与pathpaint结合使用。
    6、实战:画板实例

    相关文章

      网友评论

          本文标题:Android_Canvas画布总结

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