Android View 详解

Posted 巷子里的旧少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android View 详解相关的知识,希望对你有一定的参考价值。

端午没地儿去,就将这几天对android view 学习笔记整理一下。

什么是View

在介绍view 的基础只是之前,我们首先要知道到底什么是View,View是在Aandroid中所有都控件的基类,不管是简单的Button和TextView还是复杂的RelativeLayout和Listview,它们的共同基类都是View。所以说,View是一种界面层的控件的一种抽象,它代表了一个控件。除了View,还有ViewGroup,从名字来看,它可以被翻译为控件组,言外之意是ViewGroup内部包含了许多控件,即一组View。在Android设计中,ViewGroup也继承了View,这就意味着View本身就可以是单个控件也可以是由多个控件组成的一个控件组,通过这种关系就形成了View树的结构,这和Web前端中的DOM树的概念是相似的,根据这个概念,我们知道,Button显然是个View,而LinearLayout不但是个View,而且还是个ViewGroup,而ViewGroup内部是可以有子View的,这个子View的,这个子View同样还可以是ViewGroup,以此类推。

View的位置参数

View的位置主要由它的四个顶点来决定,分别对应于View的四个属性:top、left、right、bottom。其中top是右上角纵坐标,left是左上角横坐标,right是右下角横坐标,bottom是右下角纵坐标。需要注意的是,这些坐标都是相对于View的父容器的关系图如下,在Android中,x轴和y轴的正方向分别为右和下,这点不难理解,不仅仅是Android,大部分显示系统都是按照这个标准来定义坐标系的。

根据上面的图,我们很容易得出View的宽高和坐标的关系:

width = right - left
height = bottom - top
那么如何得到View的这四个参数呢,也很简单,在View的源码中它们应于 mLeft、mRight、mTop、和mBottom这四个成员变量,获取方式如下:

  • Left = getLeft();

  • Right = getRight();

  • Top = getTop();

  • Bottom = getBottom();

    从Android3.0开始,View增加了额外的几个参数:x、y、translationX和translationY,其中x和y是View左上角的坐标,而translationX和translationY是View左上角相对于父容器的偏移量。这几个参数也是相对于父容器的坐标,并且translationX和translationY的默认值是0,和View的四个基本的位置参数一样,View也为它们提供了get/set方法,这几个参数的换算关系如下:

x = left + translationx

y = top + translationy

需要注意的是,View在平移的过程中,top和left表示的是原始左上角的位置信息,其值并不会发生改变,此时发生改变的是x、y、translationX和translationY这四个参数。

以上是关于Android View 详解的主要内容,如果未能解决你的问题,请参考以下文章

Android 自定义View 基础

Android坐标相关知识纪要

Android坐标相关知识纪要

Android自定义View学习一---基础

Android View

Android实现滑动的几种方式