Android VelocityTracker类和Scroller类
- VelocityTracker类:用于跟踪触屏事件的速度,通常使用VelocityTracker的步骤如下:
- static VelocityTracker obtain():获取一个VelocityTracker实例
- void addMovement(MotionEvent event):添加motion event到VelocityTracker实例中
- void computeCurrentVelocity(int units):计算当前的速度,units用于设置速度单位,units为1表示每毫秒多少像素,units为1000表示每秒多少像素
- Scroller类封装了滚动,用于计算view滚动的位置,可以设置滚动发生的时长,滚动结束时computeScrollOffset函数会返回false,否则返回true。
- 常用函数:
- public void startScroll(int startX,int startY,int dx,int dy,int duration):设置滚动的起点坐标,横轴和纵轴滚动的距离以及滚动的时间。要注意的是dx<0是往右滚动,dy<0是往下滚动
- public boolean computeScrollOffset():返回true说明滚动尚未完成,false就说明滚动完成了,该函数通常放在View.computeScroll函数中用于判断滚动是否结束。在duration时间内一直返回false
- pubilc final int getCurrX():相对于滚动开始点的横轴距离,即相对于startX的距离,注意不是相对于屏幕左上角。在滚动未完成时这个值一直在变。
- public final int getFinalX():返回滚动的距离,即dx的值.往右滚动返回负值
- View与滚动相关的函数:
- public void computeScroll():是View类的一个空函数,父容器需要更新子view的位置时调用
- public void scrollTo(int x,int y):滚动view到指定位置,这个位置是相对于view的初始位置的距离.
- public void scrollBy(int x,int y):滚动view的距离,往右和往下是负值
- 使用Scroller类自定义ViewGroup的实例:
public class MyViewGroup extends LinearLayout {
private boolean recover=true;
Scroller mScroller=null;
public MyViewGroup(Context context, AttributeSet attrs) {
super(context, attrs);
mScroller=new Scroller(context);
}
//实际发生滚动的函数
@Override
public void computeScroll() {
if (mScroller.computeScrollOffset()) {
int deltX=mScroller.getCurrX();
int deltY=mScroller.getCurrY();
scrollTo(deltX, deltY);
postInvalidate();
}
}
public void beginScroll(){
if (!recover) {
mScroller.startScroll(0, 0, 0, 0, 10000);
recover = true;
} else {
mScroller.startScroll(0, 0, -100, -100, 10000);
recover = false;
}
invalidate();
}
}
Android VelocityTracker类和Scroller类的更多相关文章
- Android 界面滑动实现---Scroller类 从源码和开发文档中学习(让你的布局动起来)
在android学习中,动作交互是软件中重要的一部分,其中的Scroller就是提供了拖动效果的类,在网上,比如说一些Launcher实现滑屏都可以通过这个类去实现.. 例子相关博文:Androi ...
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
在android学习中,动作交互是软件中重要的一部分,其中的Scroller就是提供了拖动效果的类,在网上,比如说一些Launcher实现滑屏都可以通过这个类去实现.下面要说的就是上次Scroller ...
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源代码
在android学习中,动作交互是软件中重要的一部分.当中的Scroller就是提供了拖动效果的类,在网上.比方说一些Launcher实现滑屏都能够通过这个类去实现.以下要说的就是上次Scroller ...
- Android中滑屏实现----手把手教你如何实现触摸滑屏以及Scroller类详解
前言: 虽然本文标题的有点标题党的感觉,但无论如何,通过这篇文章的学习以及你自己的实践认知,写个简单的滑屏小 Demo还是just so so的. 友情提示: 在继续往下面读之前,希望您对以下知识点 ...
- Android中滑屏实现----触摸滑屏以及Scroller类详解 .
转:http://blog.csdn.net/qinjuning/article/details/7419207 知识点一: 关于scrollTo()和scrollBy()以及偏移坐标的设置/取值问 ...
- 在Android中动画移动一个View的位置,采用Scroller类实现Android动画之 View移动
在Android中动画移动一个View的位置,采用Scroller类实现 今天说最近自己遇到的一个问题,就是要用动画效果来移动一个VIew的位置. 这个具体的情况是,需要做一个SlidingMenu的 ...
- Android Scroller类的详细分析
尊重原创作者,转载请注明出处: http://blog.csdn.net/gemmem/article/details/7321910 Scroller这个类理解起来有一定的困难,刚开始接触Scrol ...
- Android自己定义组件系列【2】——Scroller类
在上一篇中介绍了View类的scrollTo和scrollBy两个方法,对这两个方法不太了解的朋友能够先看<自己定义View及ViewGroup> scrollTo和scrollBy尽管实 ...
- Android自定义组件系列【2】——Scroller类
在上一篇中介绍了View类的scrollTo和scrollBy两个方法,对这两个方法不太了解的朋友可以先看<自定义View及ViewGroup> scrollTo和scrollBy虽然实现 ...
随机推荐
- 38.Qt模型/视图结构
1.模型/视图类 2.模型 3.视图 4.代理 1 模型/视图类 InterView框架提供了一些可以直接使用的模型类和视图类,如QStandardModel类,QDirModel类,QStringL ...
- 13.QT多窗口切换list
Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); list = ...
- 12. Integer to Roman[M]整数转罗马数字
题目 Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from ...
- ROS-Solidworks转URDF
前言:URDF建模很粗糙,而ros提供了支持sw转urdf的插件,可以使建模更精细化. 一.安装sw_urdf_exporter插件 sw_urdf_exporter插件网址:http://wiki. ...
- Selenium启动不同浏览器
1.启动Chrome "webdriver.chrome.driver" System.setProperty("webdriver.chrome.driver" ...
- 将百度百科的机器学习词条中的一段关于机器学习的demo改用Java写了一遍
这是引用的百度百科中关于机器学习的一段示例,讲述了通过环境影响来进行学习的例子. 下面是代码: import java.io.BufferedReader; import java.io.IOExce ...
- Python爬虫:爬取某网站关键词对应商品ID,且存入DB2数据库
公司研发不给力,我就自己写了一个,专门爬关键词对应的商品ID. 其中还学会了用Python操作DB2数据库.Python发送邮件.写日志文件.处理浏览器访问限制. #!/usr/bin/python# ...
- iOS的流畅性
1优先级别不同:iOS最先响应屏幕 优先级别不同:iOS最先响应屏幕 当我们使用iOS或者是Android手机时,第一步就是滑屏解锁找到相应程序点击进入.而这个时候往往是所有操控开始的第一步骤,iOS ...
- java导出html页面
http://blog.csdn.net/zhyh1986/article/details/8727523#t6 http://blog.csdn.net/zuozuofuwaiwai/article ...
- CentOS7上安装google谷歌浏览器
1.首先进入根目录,然后进入etc/yum.repos.d目录下,创建google-chrome.repo文件 cd / cd etc/yum.repos.d vim google-chrome. ...