坐标

View坐标:
1.view.left / view.top

以父容器左上角为原点,view左上角的坐标值,Int类型,layout未完成只能获取到0.0,单位是px

2.view.translationX / view.translationY

默认为0.0,float类型,可以通过代码设置:

	 view.translationX = 100f
     view.translationY = 100f

效果是View向右下方各移动了100像素

3.view.x / view.y

x = translationX + left
y = translationY + right
表示以父容器左上角为原点,view左上角的坐标值,float类型,单位px

4.scrollX / scrollY

只有ScrollView等可以滚动的View的scrollXY属性才可能非0
ScrollView滚动不会影响x,y,left,top属性的值,在ScrollView中这些属性的值可能远大于屏幕尺寸;
例如,在一个高度为100的ScrollView中可能存在一个y值为200的View

判断ScrollerView滑倒顶/底部的方式:

	scoller.setOnTouchListener(object : View.OnTouchListener {
         override fun onTouch(p0: View?, p1: MotionEvent?): Boolean {
             if(scoller.getChildAt(0).bottom == scoller.height + scoller.scrollY){
                    //滑到底部
             }else if(scoller.scrollY == 0){
                    //滑到顶部
             }
             return false
         }
    })
5.动画相关:

pivotX / pivotY 缩放旋转动画的轴心点;
scaleX / scaleY 缩放比例,它们的值是float类型
rotationX / rotationY 以X/Y轴为轴旋转的角度,它们的值是float类型

6.绝对坐标:
  val location = IntArray(2)
  view.getLocationInWindow(location); 	//获取在当前窗口内的绝对坐标
  view.getLocationOnScreen(location)	//获取在屏幕内的绝对坐标,二者一般相等
  location[0]			//绝对x坐标
  location[1]			//绝对y坐标

这里的绝对坐标包含了状态栏的高度,且ScrollView滚动会改变绝对坐标的值
它表示当前屏幕某View左上角与屏幕左上角的相对位置,它的值不可能超过屏幕尺寸
注意:以上所有表示坐标的单位都是px,不是dp

事件坐标:
1.MotionEvent.x / MotionEvent.y

以被触摸的控件左上角为原点,touch事件发生的坐标,在ScrollView中这两个值表示的大小也绝不超过屏幕尺寸;

2.MotionEvent.x / MotionEvent.y

以被屏幕左上角为原点,touch事件发生的坐标,且在ScrollView中这两个值的大小也绝不超过屏幕尺寸;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值