美文网首页Android开发Android开发经验谈Android开发
Android 自定义 View Canvas 基本操作

Android 自定义 View Canvas 基本操作

作者: d74f37143a31 | 来源:发表于2019-01-01 23:38 被阅读2次

    参考文章 安卓自定义View进阶-Canvas之画布操作

    实现的效果图

    效果图

    主要用到的知识点有:

    • canvas.save();
    • canvas.restore();
    • canvas.translate();
    • canvas.scale();
    • canvas.rotate();

    canvas.save()canvas.restore() 是成对出现的,canvas.save()函数在前,·canvas.restore()函数在后,用来保证在这两个函数之间所做的操作不会对原来在canvas上所画图形产生影响。

    *canvas.translate()是坐标系的移动,可以为图形绘制选择一个合适的坐标系。 位移是基于当前位置移动,而不是每次基于屏幕左上角的(0,0)点移动。也就是之后的进行的canvas的坐标的其实位置就是最后移动的坐标位置。

    canvas.scale()顾名思义是缩放操作。它有两个构造方法,如下:

    public void scale (float sx, float sy)
    
    public final void scale (float sx, float sy, float px, float py)
    

    这两个方法中前两个参数是相同的分别为x轴y轴的缩放比例。而第二种方法比前一种多了两个参数,用来控制 缩放中心位置的

    缩放的中心默认为坐标原点,而缩放中心轴就是坐标轴,每次缩放也是基于上次的比例去缩放。

    ps: 详细使用的图文对比参考顶部的参考文章

    canvas.rotate() 表示的是 旋转操作。
    旋转提供了两种方法:

    public void rotate (float degrees)
    
    public final void rotate (float degrees, float px, float py)
    

    和缩放一样,第二种方法多出来的两个参数依旧是控制旋转中心点的。

    默认的旋转中心依旧是坐标原点,也是叠加的。

    源码地址

    相关文章

      网友评论

        本文标题:Android 自定义 View Canvas 基本操作

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