Scroller
来源:互联网 发布:php list注意 编辑:程序博客网 时间:2024/06/06 03:02
滑动机制,已有前人栽树,我就后人乘阴。
相关API:
mScroller.getCurrX() //获取mScroller当前水平滚动的位置 mScroller.getCurrY() //获取mScroller当前竖直滚动的位置 mScroller.getFinalX() //获取mScroller最终停止的水平位置 mScroller.getFinalY() //获取mScroller最终停止的竖直位置 mScroller.setFinalX(int newX) //设置mScroller最终停留的水平位置,没有动画效果,直接跳到目标位置 mScroller.setFinalY(int newY) //设置mScroller最终停留的竖直位置,没有动画效果,直接跳到目标位置 //滚动,startX, startY为开始滚动的位置,dx,dy为滚动的偏移量, duration为完成滚动的时间 mScroller.startScroll(int startX, int startY, int dx, int dy) //使用默认完成时间250ms mScroller.startScroll(int startX, int startY, int dx, int dy, int duration) mScroller.computeScrollOffset() //返回值为boolean,true说明滚动尚未完成,false说明滚动已经完成。这是一个很重要的方法,通常放在View.computeScroll()中,用来判断是否滚动是否结束。
常用套路用法:
Scroller mScroller = new Scroller(mContext);private void smoothScroll(int destX, int destY) { int scrollX = getScrollX(); int deltaX = destX - scrollX; mScroller.startScroll(scrollX, 0, deltaX, 0, 500); invalidate();}@Overridepublic void computeScroll() { super.computeScroll(); if (mScroller.computeScrollOffset()) { scrollTo(mScroller.getCurrX(), mScroller.getCurrY()); invalidate(); }}
这是一个循环自嗨的方法:
为什么这么转圈圈呢?你猜
说到这里就又涉及到了两个方法:scrollBy和scrollTo
scrollBy:这个是相对位移
scrollTo:这个是绝对位移
示例:
scrollBy(10,10);
假设起始位置是(0,0),调用一次后位置就到了(10,10),调用两次就到了(20,20)…
scrollTo(10,10);
假设起始位置是(0,0),调用一次后位置就到了(10,10),调用两次还是(10,10)…
阅读全文
0 0
- Scroller
- Scroller
- Scroller
- Scroller
- scroller
- scroller
- scroller
- Scroller
- scroller
- Scroller
- Scroller
- Scroller
- Scroller
- scroller
- Scroller
- Scroller
- 滑动Scroller
- android scroller
- API3
- 欢迎使用CSDN-markdown编辑器
- dobbo配置
- 2048游戏(java控制台-原生jdk实现)
- python3正则模块中的(?(id)yes|no)构造
- Scroller
- Java 反射机制
- 文章标题
- python 写的方法返回的是个中文,在 rf 日志中显示的却是乱码解决方法
- PHP之static静态变量详解(一)
- Adversarial Sample misleading the Model(生成对抗样本迷惑模型)
- 问题Incompatible ssh peer
- 2.python连接mongodb,利用微博数据制作云图
- 让一个div居于页面中间,水平居中同时垂直居中