View的事件体系——View的基础知识

本文详细介绍了Android中View的基础知识,包括View的位置参数、MotionEvent、TouchSlop、VelocityTracker、GestureDetector和Scroller对象。重点讲解了这些概念在触摸事件处理和视图交互中的作用,帮助开发者更好地理解和定制View。
摘要由CSDN通过智能技术生成

View的基础知识

View不属于Android四大组件,但是它的作用甚至超过了四大组件,当Android系统所提供的基础控件不能满足我们的需求时,我们就需要自定义View来满足我们的需求,这就需要我们对View体系有深入的理解。

为了更好地了解View的内容,我们将介绍:View的位置参数MotionEventTouchSlop对象VelocityTracker对象GestureDetector对象Scroller对象

1.什么是View

众所周知,Android中有许许多多的基础控件,例如:Button,TextView,RelativeLayout,ListView…它们的基类其实都是View。

View是一种界面层的控件的一种抽象,它代表了一个控件。

除了View,还有ViewGroup,正如其名,它是一个控件组,也就是说它内部包含了许多控件,即一组View。在Android的设计中,ViewGroup也继承于View,这就意味着View既可以是单个控件,也可以是一组控件形成的控件组,这也就形成了View树的结构,其类似于Web前端中的DOM树。

为了更好的理解View的概念,我们用Button和LinearLayout来说明:
Button显然是一个View,LinearLayout不仅是View也是一个ViewGroup,而且其内部可以有很多个View,这些子View同样也可以是一个ViewGroup(即Layout的多层嵌套),依次类推。

2.View的位置参数

View的位置主要由他的四个顶点来决定,分别对应于View的四个属性:

  1. top:左上角纵坐标
  2. left:左上角横坐标
  3. right:右下角横坐标
  4. bottom:右下角纵坐标

x轴和y轴的分布以及四个属性值的含义,如下图所示:
在这里插入图片描述
需要注意的是这些坐标都是相对于View的父容器来说的,因此它是一种相对坐标

由上图可知:

width = right - left;
height = bottom - top;

这四个参数我们可以通过如下方法得到:

View v = ....//假设v是一个View实例
int top = v.getTop();
int left = v.getLeft();
int right = v.getRight();
int bottom = v.getBottom();

从Android3.0开始,View增加了额外的几个参数:x, y, translationX, translationY .
其中x,y是View左上角的坐标,而translationX和translationY是View左上角相对于父容器的偏移量。这几个参数View也提供了get/s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值