Android——Scroll分析

一:滑动的产生原因

滑动一个View原理:就是通过不断的改变View的坐标。
实现View的滑动,必须监听用户触摸的事件,根据触摸传入的坐标,动态的改变View的坐标,从而实现滑动
Android的坐标系:Android中屏幕的最左上端的点就是原点,向右就是X坐标轴的正方向,向下就是Y坐标轴的正方向
系统提供的getLocationOnScreen(intlocation[])方法获取Android坐标系中位置 触控事件中的getRawX 和getRawY方法实 现同样效果
视图坐标系:相对于Android坐标系,视图坐标系主要描述子View在父 View中的位置,将父视图 左上角作为坐标原点。触控事件中getX getY可以获取View的视图坐标系
触控事件:
常用到的:单点触摸、单点触摸离开屏幕、触摸点移动

public static final int ACTION_DOWN             = 0;
public static final int ACTION_UP               = 1;
public static final int ACTION_MOVE             = 2;

通常会在onTouchEvent(MotionEvent event)中通过event.getAction()方法获取触控事件的类型。
常用获取坐标的方法:
(1)View提供的获取坐标的方法
getTop:获取当前View自身的顶边到父布局顶边的距离
getLeft:获取当前View自身的左边到父布局左边的距离
getRight:获取当前View自身的右边到父布局右边的距离
getBottom:获取当前View自身的底边到父布局底边的距离
(2)触控事件MotionEvent中提供的方法
getX:视图坐标 点击事件到控件左边的距离
getY:视图坐标
getRawX:Android坐标 点击事件距离屏幕左端的距离
getRawY:Android坐标
这里写图片描述

二.实现滑动的七种方法

第一种:layout方法
采用getX,getY

// 视图坐标方式
@Override
public boolean onTouchEvent(MotionEvent event) {
//获取触控点的坐标
int x = (int) event.getX();
    int y = (int) event.getY();
    switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 记录触摸点坐标
lastX = x;
lastY = y;
            break;
        case MotionEvent.ACTION_MOVE:
// 计算偏移量
int offsetX = x - lastX;
            int offsetY = y - lastY;
// 在当前left、top、right、bottom的基础上加上偏移量
layout(getLeft() + offsetX,
getTop() + offsetY,
getRight() + offsetX,
getBottom() + offsetY);
//同时对left和right进行偏移
           <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值