• Android View体系(一)视图坐标系


    前言

    Android View体系是界面编程的核心,他的重要性不亚于Android四大组件,在这个系列中我会陆续讲到View坐标系、View的滑动、View的事件分发等文章来逐步介绍Android View体系。

    1.View简介

    View是Android所有控件的基类,同时ViewGroup也是继承自View,看下面这张图我们就会有一个直观的了解:
    这里写图片描述

    知道了View的层级关系有助于对View的理解,从上图可以发现我们常用的这些控件都是继承于View,如果我们更好的掌握了View的知识体系,那么我们在界面编程时则会更加的得心应手。

    2.Android坐标系

    Android中有两种坐标系,分别为Android坐标系和视图坐标系,首先我们先来看看Android坐标系。
    在Android中,将屏幕的左上角的顶点作为Android坐标系的原点,这个原点向右是X轴正方向,原点向下是Y轴正方向。

    这里写图片描述

    在下文讲到的MotionEvent提供的getRawX()和getRawY()获取的坐标都是Android坐标系的坐标。

    3.视图坐标系

    要了解视图坐标系我们只需要看懂一张图就可以了:
    这里写图片描述

    View获取自身宽高

    • getHeight():获取View自身高度
    • getWidth():获取View自身宽度

    View自身坐标

    通过如下方法可以获得View到其父控件(ViewGroup)的距离:

    • getTop():获取View自身顶边到其父布局顶边的距离
    • getLeft():获取View自身左边到其父布局左边的距离
    • getRight():获取View自身右边到其父布局左边的距离
    • getBottom():获取View自身底边到其父布局顶边的距离

    MotionEvent提供的方法

    我们看上图那个深蓝色的点,假设就是我们触摸的点,我们知道无论是View还是ViewGroup,最终的点击事件都会由onTouchEvent(MotionEvent event)方法来处理,MotionEvent也提供了各种获取焦点坐标的方法:

      • getX():获取点击事件距离控件左边的距离,即视图坐标
      • getY():获取点击事件距离控件顶边的距离,即视图坐标
      • getRawX():获取点击事件距离整个屏幕左边距离,即绝对坐标
      • getRawY():获取点击事件距离整个屏幕顶边的的距离,即绝对坐标
  • 相关阅读:
    POC- Proof of Cocept -- 概念验证
    英语语法学习 7 -- 数词
    英语语法学习6 -- 代词
    英语语法学习5-冠词
    英语语法学习4-名词
    英语语法学习3-句子的组成和分类
    alibaba-Java开发手册心得-一编程规约-4oop(面向对象编程)规约
    alibaba-Java开发手册心得-一编程规约-3代码格式
    alibaba-Java开发手册心得-一编程规约-2常量定义
    魔法值的简单了解
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/6768783.html
Copyright © 2020-2023  润新知