View 的 translationX、 translationY , X、Y 和 Left、Top,Right、Bottom

网上有不少人把view的坐标和点击事件的坐标 混为一谈

一、View的相关坐标和位置

先来看一张图,对这几个值有个大概了解,下面再进行详细的分析

这里写图片描述

先来了解一个概念:

view动画不改变view的真实位置,就是肉眼看上去,view位置发生了变化,但是它的点击区域还是在原来的位置。

为了方便描述,下文中的的真实view,表示真实位置的view看到的View,表示肉眼看到的view

属性动画和setTranslationX/setTranslationY ,会改变显示位置和真实位置

上图中view1是初始位置,通过执行setTranslation函数,得到的view2位置,其中left,top,right,bottom这几个值不会改变

1、left,top,right,bottom

View 的位置主要由它的四个顶点的位置来决定,分别对应 View 的四个属性:left top right bottom。对应的函数是getLeft,getTop,getRight,getBottom

left: View 左上顶点相对于父容器的横坐标
top: View 左上顶点相对于父容器的纵坐标
right: View 右下顶点相对于父容器的横坐标
bottom: View 右下顶点相对于父容器的纵坐标

这几个值表示的是view的真身位置,它表示哪里,点击区域就在哪里。和肉眼在屏幕上看到的位置可能不一样

2、 X,Y

上面说到view动画不改变view的真实位置(也就是不改变view的left,top,right,bottom)。

看到的view相对于真实view,位置发生了变化,但是它的点击区域还是在真实view的位置。

从 Android 3.0 开始,View 增加了 x,y,translationX 和 translationY。

x,y 是看到的view的左上角相对父容器的坐标,但不同于 left 和 top ,这两个坐标点的值并一定都是相等的。

真实view 和 看到view的偏差用 translationX 和 translationY 来表示

3、 translationX,translationY

android开发艺术探索中,关于translationX的讲解是错误的。真实情况是,translationX是真实view 相对于看到view的 x 方向偏移量

从上图可以得知:x = left + translationX

二、点击事件的XY坐标

这里写图片描述

参考:

View坐标系
Android - 区分 View 的 translationX、Y , X、Y 和 Left、Top,Right、Bottom

关注我的公众号,轻松了解和学习更多技术
这里写图片描述

©️2020 CSDN 皮肤主题: 撸撸猫 设计师: 设计师小姐姐 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值