Android开发艺术探索学习摘要(五)
来源:互联网 发布:linux free swap 编辑:程序博客网 时间:2024/05/18 00:24
1.TouchSlop是系统所能识别出的被认为是滑动的最小距离,这是一个常量,和设备有关,可以通过如下方式获取这个常量:
ViewConfiguration.get(getContext).getScaledTouchSlop()2.VelocityTracker速度追踪,用于追踪手指在滑动过程中的速度。
获取VelocityTracker的实例对象
VelocityTracker velocityTracker=VelocityTracker.obtain();在onTouchEvent回调函数中,将当前的移动时间传递给VelocityTracker对象
velocityTracker.addMovement(event);计算当前速度(获取速度之前必须先计算速度)负方向滑动计算出来的速度是负值
velocityTracker.computeCurrentVelocity(1000);获取当前速度
int xVelocity=(int) velocityTracker.getXVelocity();int yVelocity=(int) velocityTracker.getYVelocity();重置并回收内存
velocityTracker.clear();velocityTracker.recycle();
3.GestureDetector手势检测,用于辅助检测用户的单击、滑动、长按、双击等行为。如果只是监听滑动相关的,建议自己在onTouchEvent中实现,如果要监听双击这种行为的话,那么就使用GuestureDetector。
4.Scroller可以实现有过渡效果的滑动。
Scroller scroller = new Scroller(mContext);//缓慢滚动到指定位置private void smoothScrollTo(int destX,int destY){ int scrollX=getScrollX(); int delta=destX-scrollX; //1000ms内滑向destX,效果就是缓慢滑动 mScroller.startScroll(scrollX,0,delta,0,1000); invalidate();}public void computeScroll(){ if(mScroller.computeScrollOffset){ scrollTo(mScroller.getCurrX(),mScroller.getCurrY()); postInvalidate(); }}5.实现View滑动的三种方式:第一种是通过View本身提供的scrollTo/scrollBy方法来实现滑动;第二种是通过动画给View施加平移效果来实现滑动;第三种是通过改变View的LayoutParams使得View重新布局从而实现滑动。
scrollTo和scrollBy只能改变View内容的位置而不能改变View在布局中的位置。
View动画是对View的影像做操作,它并不能真正改变View的位置参数。
8.三种实现方式的总结:
scrollTo/scrollBy:操作简单,适合对View内容的滑动
动画:操作简单,主要适用于没有交互的View和实现复杂的动画效果
改变布局参数:操作稍微复杂,适用于有交互的View
9.Scroller的工作原理:Scroller本身并不能实现View的滑动,它需要配合View的computeScroll方法才能完成弹性滑动的效果,它不断地让View重绘,而每一次重绘距滑动起始时间会有一个时间间隔,通过这个时间间隔Scroller就可以得出View当前的滑动位置,知道了滑动位置就可以通过scrollTo方法来完成View的滑动。就这样,View的每一次重绘都会导致View进行小幅度的滑动,而多次小幅度滑动就组成了弹性滑动。
阅读全文
0 0
- Android开发艺术探索学习摘要(五)
- Android开发艺术探索学习摘要(三)
- Android开发艺术探索学习摘要(一)
- Android开发艺术探索学习摘要(二)
- Android开发艺术探索学习摘要(四)
- android开发艺术探索(五)
- 《Android开发艺术探索》之学习笔记(五)理解RemoteViews
- Android IPC机制学习(Android艺术开发探索)
- 《Android开发艺术探索》学习笔记(一)
- 《android开发艺术探索》学习笔记(一)
- 学习《android 开发艺术探索》记录
- Android开发艺术探索 第十章 学习
- Android开发艺术探索学习笔记 第一章
- Android开发艺术探索 学习笔记
- 《Android开发艺术探索》学习笔记
- Android开发艺术探索学习笔记
- Android开发艺术探索学习笔记 1
- Android 开发艺术探索 学习笔记 Activity
- Xcode 的清理
- jQuery判断checkbox是否选中
- 4.4抽象类
- @ExceptionHandler
- django.core.exceptions.ImproperlyConfigured:
- Android开发艺术探索学习摘要(五)
- c# 面向对象基础技能
- [Leetcode] 152. Maximum Product Subarray
- git使用手册
- 在C程序中调用汇编函数
- Scala学习七:数组
- [Debug]
- caffe 借助自己图像在imagenet网络中实践
- leetcode rotate-image(90°旋转矩阵)