Android艺术开发探索第三章学习笔记——View的事件体系(上)

参考博客:Android艺术开发探索第三章——View的事件体系(上)

一.View的基础知识

view控件的位置参数

  • Left = getLeft();
  • Right = getRight();
  • Top = getTop();
  • Bottom = getBottom():
  • translationX  偏移量
  • translationY  偏移量

view的触摸事件

  • ACTION_DOWN一手指刚接触屏幕
  • ACTION_MOVE一—手指在屏幕上移动
  • ACTION_UP——手机从屏幕上松开的一瞬间

getX/getY返回的是相对于当前View左上角的x和y坐标,而geiRawX/getRawY返回的是相对于手机屏幕左上角的x和y坐标

2.TouchSlop

ViewConfigurtion.get(getContext()).getScaledTouchSlop  小于这个值时,不是滑动事件;

3.VelocityTracker

速度追踪,用于追踪手指在屏幕上滑动的速度,包括水平和竖直方向上的速度

4.GestureDetector

手势检测,用于辅助检测用户的单击、滑动、长按、双击等行为

onSingleTapUp(单击),onFling(快速滑动),onScroll(推动),onLongPress(长按)和onDoubleTap(双击)

5.Scroller

弹性滑动对象,用于实现View的弹性滑动

二.View的滑动

1.使用scrollTo/scrollBy

scrolTo和scrollBy只能改变View内容的位置而不能变View在布局中的位置。

2.使用动画

View动画是对View的影像做操作,它并不能真正改变View的位置参数,包括高宽。

如果希望动画后的状态得以保存还必须将fillAfter属性设置为true,否则动画完成之后就会消失

3.改变布局参数

改变布局参数,即改变LayoutParams

4.各种滑动方式的对比

  • scrollTo/scrollBy:操作简单,适合对View内容的滑动:
  • 动画:操作简单,主要适用于没有交互的Visw和实现复杂的动画效果
  • 改变布局参数:操作稍微复杂,适用于有交互的View

三.弹性滑动

1.Scroller

Scroller 本身不能进行弹性滑动的效果,它需要配合computeScroll才能完成弹性滑动效果;

滑动过程中,页面会不断的重绘,每次重绘都有一段时间间隔,多次重绘,就会实现弹性滑动。

2.通过动画

onAnimationUpdate

3.使用延时策略

具体来说可以使用Handler或View的postDelayed方法,也可以使用线程的sleep方法。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值