zoukankan      html  css  js  c++  java
  • Canvas 的理解

      这几天看了android 的canvas, 这里做个小结,不一定对,请大家指正
      1.  任何visible的物体继承自view,这就有具体的属性,比如这个view的大小,位置等等。Android会根据你的程序形成一根view树,通过测量大小(onMeasure),确定位置,再调用ondraw进行实际的图形绘制。
      2.  在onDraw中,有一个canvas,可以看成是一块画布。这块画布我试了下,它自身是以你view的可见区域的左上角为原点的。比如一个屏幕平分成两个view,左边的canvas的原点是(0,0),右边是(1/2 SCREEN,0)。
      3. 在canvas上作画,是以canvas的原点为原点的,也就是说,你用canvas.drawline画一条直线,坐标系不是屏幕,而是canvas自身原点那个坐标系。
      4. 在作canvas的translate, rotate时,记住,canvas本身是不变的,它会影响后面画上去的图。也就是说你在canvas上作画的顺序为
       a). 作画,比如canvas.drawLine,你画了一条直线
       b). 直线上的点需要再加上canvas.matrix。举个例子,你在画直线前设置了canvas.translate(100,100).则这条直线就需要做translate动作。
       c). 当画完直线后,我们一般restore回去,这样后面再画上去的图形就不会translate了
       切记,canvas是不变的,不然你会觉得很乱。

    转自http://blog.csdn.net/uiop78uiop78/article/details/7161916

  • 相关阅读:
    NSString属性声明中的copy和retain区别
    Xcode6无法安装VVDocumenter插件的解决方法
    Xcode好用插件
    REVEAL APP for IOS 永久试用
    Foundation框架 ---- 结构体
    Foundation框架集合 ---- NSArray和NSMutableArray
    《 算法分析与设计》 实验一-分治算法
    B-浮点常量问题
    Servlet 404原因
    小C语言--词法分析程序
  • 原文地址:https://www.cnblogs.com/linxiaojiang/p/3012783.html
Copyright © 2011-2022 走看看