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这四个参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值