美文网首页
搞清楚自定义View过程中一些模糊的概念

搞清楚自定义View过程中一些模糊的概念

作者: 向上_d821 | 来源:发表于2019-06-10 14:43 被阅读0次

    View视图结构

    对于多View的视图,结构是树形结构:最顶层是ViewGroup

    ViewGroup下可能有多个ViewGroup或View,如下图:

    图一

     Android坐标系

    Android的坐标系定义为:

    屏幕的左上角为坐标原点

    向右为x轴增大方向

    向下为y轴增大方向

    具体如下图:

    图二

     View位置(坐标)描述

    Top:子View左上角距父View顶部的距离;

    Left:子View左上角距父View左侧的距离;

    Bottom:子View右下角距父View顶部的距离

    Right:子View右下角距父View左侧的距离

    图三

    MotionEvent中 get()和getRaw()的区别

    触摸点相对于其所在组件坐标系的坐标 ---     event.getX(); event.getY();

    触摸点相对于屏幕默认坐标系的坐标  ----      event.getRawX(); event.getRawY();

    图四

     角度(angle)& 弧度(radian)

        角度和弧度都是描述角的一种度量单位,区别和联系如下图:

    图5

       注:在默认的屏幕坐标系中角度增大方向为顺时针。

    MeasureSpec类

    测量规格(MeasureSpec) = 测量模式(mode) + 测量大小(size)

    其中,测量模式(Mode)的类型有3种:UNSPECIFIED、EXACTLY 和

    AT_MOST。具体如下:

    图7

    Canvas类

    1、内容实际上是绘制在屏幕上;

    2、画布,即Canvas,只是规定了绘制内容时的规则;

    3、内容的位置由坐标决定,而坐标是相对于画布而言的

    实例情况:先画一个矩形(蓝色);然后移动画布;再画一个矩形(红色)

    效果图

    具体流程分析

    在此感谢Carson_Ho大神提供的学习资料

    相关文章

      网友评论

          本文标题:搞清楚自定义View过程中一些模糊的概念

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