如此简单的Scroller
来源:互联网 发布:网络电视机顶盒选购 编辑:程序博客网 时间:2024/05/22 05:26
首先:
//初始化
Scroller scroller = new Scroller(context);
然后:
//开始滑动,也就是设置参数
scroller.startScroll(“开始位置x”, “开始位置y”, “要改变的位置x(这是变化量,也就是差值)”, “要改变的位置y(这是变化量,也就是差值)”, “时间,也就是,多久完成这个动作”);
invalidate();
最后:
@Override
public void computeScroll() {
if (scroller != null && scroller.computeScrollOffset()) {
/**
这里就可以进行写滑动或者改变view大小高度的操作。例如scrollto()等。。
scroller.getCurrX(y)();//通过源码可以看到这个是开始xy+变化量Xy
**/
postInvalidate();
}
super.computeScroll();
}
总结:
scroller并不具备滑动或者改变view宽高等功能。startScroll(),这个方法只是记录了要用到的所有参数。然后通过调用
invalidate()重绘;这个方法间接的调用到draw() 方法,draw()方法又要调用computeScroll()。然后postInvalidate();又会紧接着第二次重绘。
其中:computeScroll()是主要实现功能的方法,可以在里面进行滑动或者放大view等操作。参数可以通过scrller直接get到,因为start的时候记录了要用的参数。
疑问:为什么可以再指定时间内完成这些操作呢?也就是他是怎么定时的呢?
原理还是很简单的:比如你要从1数到100,在1000s完成。这个很简单啊,每10s数一下啊。。。。。
例如:当你要指定时间改变x轴滑动的距离,其中”要改变的位置x(这是变化量,也就是差值)”为500px,那么我要在1000毫秒完成,那么每过2毫秒滑动1px,就可以。以这种比例去执行computeScroll();最终就可以在1000毫秒滑动500px.(虽然源码中还有速度差值之类的处理,但是道理大概就是这个样子)
- 如此简单的Scroller
- 如此简单的dwr
- Android Scroller的简单使用方法
- Android Scroller 的简单用法
- Android Scroller的简单使用
- 一个如此简单的代码
- CoordinatorLayout的使用如此简单
- CoordinatorLayout的使用如此简单
- CoordinatorLayout的使用如此简单
- CoordinatorLayout的使用如此简单
- CoordinatorLayout的使用如此简单
- CoordinatorLayout的使用如此简单
- CoordinatorLayout的使用如此简单
- CoordinatorLayout的使用如此简单
- CoordinatorLayout的使用如此简单
- scroller view滚动的简单使用方法
- Android Scroller工具类的简单用法
- 用Scroller完成一个简单的ViewPager
- -[ASIDataCompressor compressBytes:length:error:shouldFinish:] in ASIDataCompressor.o
- 【OpenCV】利用霍夫变换进行直线检测
- 变量一般不要定义在.h文件中
- 帮你彻底解决eclipse(myeclipse)中写struts.xml配置文件
- 在MyEclipse配置的WebLogic上发布的应用,修改了页面源码后,应用前台怎么刷新、清缓存都不显示修改效果
- 如此简单的Scroller
- ios 检查内存泄露
- 单独使用ndk的编译器
- 动态代理
- Git图形化界面客户端大汇总
- spring mvc整合json
- 蓝牙技术——数据传输
- 从窗体泄漏谈android:configChanges属性
- Android status icon remove