Android 自定义View之位置参数

本文详细解析了Android中View的坐标系统,包括top、left、right、bottom等基本位置属性及其与View宽高的关系,并介绍了Android 3.0新增的x、y、translationX、translationY属性及其在属性动画中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要介绍 : top, left, right, bottom, x, y, translationX, translationY.

View的位置主要由四个顶点的位置确定 对应着View的四个属性值:top, left, right, bottom.

注意 : 这些坐标都是相对于View的父控件来说的,是相对位置

View 相对位置.png

View的宽高和View坐标的关系:

// 宽度
width = right - left;
// 高度
height = bottom - top;

获取View的位置参数:

// 相当简单吧, getXXX()系列方法.
left = getLeft();
right = getRight();
top = getTop();
bottom = getBottom();

Android 3.0 增加了几个额外的参数: x, y, translationX, translationY
它们都是相对于父控件而言的位置.

  • (x, y) : 是View左上角坐标.注意:此时的坐标系是父控件的左上顶点为原点
  • translationX : View相对于父控件在X轴上的位移量.初始值为 0.
  • translationY : View相对于父控件在Y轴上的位移量.初始值为 0.

注意 : 对于translationX 和 translationY来说如果控件没有发生移动他们就都是0,只有View发生了位移translationX和translationY的值才会有变化.

三种位置参数关系:

x = left + translationX;
y = top + translationY;

在上面的公式中,left 和 top 的值是始终不变的. 在平移过程中x, y ,translationX, translationY 变化如下 :

初始位置.

注意1 : 以下变化都是通过属性动画改变View的位置
注意2 : 移动过程中top, left, bottom, right 是不会不变化的.

  • 当View向 x轴负方向移动时(向左):
    • x 减小.
    • translationX 减小.
  • 当View向 x轴正方向移动(向右):
    • x 增大.
    • translationX 增大

Paste_Image.png

  • 当View向 y轴负方向移动时(向上):
    • y 减小.
    • translationY 减小.
  • 当View向 y轴正方向移动(向下):
    • y 增大.
    • translationY 增大

Paste_Image.png

总结 :

  • 上述位置参数都是相对于父控件的而言的.
  • 只有在程序运行过程中发生位移x , y, translationX , translationY才会变化.
  • 移动过程中 top, left bottom, right不会发生变化.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值