- 浏览: 702590 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
葫芦瓢:
葫芦瓢 写道专注IT 写道请问楼主demo中为什么是Custo ...
Android Scroller简单用法 -
葫芦瓢:
专注IT 写道请问楼主demo中为什么是CustomView中 ...
Android Scroller简单用法 -
u011493452:
注册账号给楼主点赞!
Android Scroller简单用法 -
jiduoduo:
整理的不错!
Android文件存储 -
xiaofeng0817166:
http://deerchao.net/tutorials/r ...
Java正则表达式应用
Android里Scroller类是为了实现View平滑滚动的一个Helper类。通常在自定义的View时使用,在View中定义一个私有成员mScroller = new Scroller(context)。设置mScroller滚动的位置时,并不会导致View的滚动,通常是用mScroller记录/计算View滚动的位置,再重写View的computeScroll(),完成实际的滚动。
相关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()中,用来判断是否滚动是否结束。
举例说明,自定义一个CustomView,使用Scroller实现滚动:
import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.widget.LinearLayout; import android.widget.Scroller; public class CustomView extends LinearLayout { private static final String TAG = "Scroller"; private Scroller mScroller; public CustomView(Context context, AttributeSet attrs) { super(context, attrs); mScroller = new Scroller(context); } //调用此方法滚动到目标位置 public void smoothScrollTo(int fx, int fy) { int dx = fx - mScroller.getFinalX(); int dy = fy - mScroller.getFinalY(); smoothScrollBy(dx, dy); } //调用此方法设置滚动的相对偏移 public void smoothScrollBy(int dx, int dy) { //设置mScroller的滚动偏移量 mScroller.startScroll(mScroller.getFinalX(), mScroller.getFinalY(), dx, dy); invalidate();//这里必须调用invalidate()才能保证computeScroll()会被调用,否则不一定会刷新界面,看不到滚动效果 } @Override public void computeScroll() { //先判断mScroller滚动是否完成 if (mScroller.computeScrollOffset()) { //这里调用View的scrollTo()完成实际的滚动 scrollTo(mScroller.getCurrX(), mScroller.getCurrY()); //必须调用该方法,否则不一定能看到滚动效果 postInvalidate(); } super.computeScroll(); } }
- ScrollerDemo.rar (322.3 KB)
- 下载次数: 2924
评论
20 楼
葫芦瓢
2017-05-26
葫芦瓢 写道
专注IT 写道
请问楼主demo中为什么是CustomView中的子view在滚动,而不是CustomView滚动呢,不解
因为scrollTo只能改变view内容的位置,而不能改变view本身的内容。
因为scrollTo只能改变view内容的位置,而不能改变view本身的位置,刚刚写错了
19 楼
葫芦瓢
2017-05-26
专注IT 写道
请问楼主demo中为什么是CustomView中的子view在滚动,而不是CustomView滚动呢,不解
因为scrollTo只能改变view内容的位置,而不能改变view本身的内容。
18 楼
u011493452
2016-06-30
注册账号给楼主点赞!
17 楼
专注IT
2015-09-05
请问楼主demo中为什么是CustomView中的子view在滚动,而不是CustomView滚动呢,不解
16 楼
红柚子
2015-09-02
demo不好用呢!!!
15 楼
红柚子
2015-09-02
14 楼
junhao495
2015-09-01
博主,我真想亲你一口啊,我在做AndroidTV,横向滑动一卡一卡的,这个问题弄了我快一个星期了,用了你这个瞬间变好了!!!!多谢啊!!!!哈哈!
13 楼
wan261
2015-06-12
weifengxiatian 写道
44 postInvalidate(); 也可以用Invalidate()吧。都在UI线程里。
我也想问这个问题,楼主可以回答下嘛?
12 楼
czxpfdbxh
2014-10-31
实用简单。很能说明sroller的的用法,能说明问题就好,喜欢楼主的风格
11 楼
weifengxiatian
2014-06-12
44 postInvalidate(); 也可以用Invalidate()吧。都在UI线程里。
10 楼
chipstar
2014-05-16
这个例子非常好,实用简单。很能说明sroller的的用法,感谢博主。
9 楼
panwen79
2014-02-12
强,正在找这方面的东西
8 楼
dollgo
2013-12-26
解析清楚,例子简单,能说明实际问题!!!!!
7 楼
u011404046
2013-12-02
下载的列子怎么没用??
6 楼
122601478
2013-08-20
下载不了。
5 楼
kkmike999
2013-04-16
解析清楚,例子简单,能说明实际问题!!!!!
4 楼
zhuruyi
2012-11-20
例子效果不错
3 楼
yodang1
2012-09-20
例子很不错,很详细,谢谢了
2 楼
ipjmc
2012-09-16
huangbo_2020 写道
不知道如何用····请博主随便写过简单Demo吧·感谢···`
已更新
1 楼
huangbo_2020
2012-08-10
不知道如何用····请博主随便写过简单Demo吧·感谢···`
发表评论
-
Android Notification的使用
2012-10-20 19:28 9722Android 4.1 (Jelly Bean ... -
短信拦截
2012-09-25 20:40 2037最近写一个应用(A),需要拦截短信分析。一般是 ... -
Android 使用WebView.loadData中文乱码解决办法
2012-07-19 15:09 9547博主在使用WebView的loadData方法时发 ... -
Android HttpClient基本使用方法
2012-07-05 14:15 107832这里只介绍如何使用HttpClient发起GET或者POST请 ... -
Android XML定义颜色
2012-06-09 13:15 0在res/colors.xml中添加如下代码: 定义C ... -
Activity和Task的设计思路和方法
2012-03-29 20:20 1195Activity和 Task是 Android ... -
显示PopupWindow
2012-03-16 10:04 16631PopupWindow可 ... -
存储文件的ContentProvider
2012-03-08 23:37 9337基于SQLite的ContentProvider ... -
Android文件存储
2012-03-08 22:34 19356Internal Storage内部存储空 ... -
Android 使用Notification
2012-03-07 10:26 2188用惯了Android的人在刚拿到iPhone的 ... -
Android用软键盘将整个界面推上去
2012-03-04 17:11 35842在Android UI中 ... -
onInterceptTouchEvent和onTouchEvent调用时序
2012-02-11 23:42 1038onInterceptTouchEvent() ... -
使用ConnectivityManager监听网络状态变化
2011-12-24 11:16 29791mIntenFilter = new IntentFilte ... -
Window Manager
2012-03-22 23:51 1520Android的窗口机制基于WindowManager,可以通 ... -
CommonsWare Android Components
2011-12-17 16:10 1714CommonsWare Android Com ... -
Android中图片缩放
2011-12-17 00:09 1882下载的图片如果过大,可能导致内存溢出。需要做压 ... -
Android 使用Parcelable序列化对象
2011-12-16 23:43 36513Android序列化对象主要有两种方法,实现S ... -
PreferenceActivity
2011-12-12 22:54 878传送门:http://www.cnblogs.com/wser ... -
View.scrollBy()与View.scrollTo()的使用
2011-12-12 22:40 19533scrollTo()和scrollBy()都是V ... -
Android 新浪微博授权
2011-12-11 17:13 7468OAuth方式 通过网页方式授权 实现方法,三个步骤 1.使用 ...
相关推荐
什么是实现View的平滑滚动效果呢,举个简单的例子,一个View从在我们指定的时间内从一个位置滚动到另外一个位置,我们利用Scroller类可以实现匀速滚动,可以先加速后减速,可以先减速后加速等等效果,而不是瞬间的...
本文实例为大家分享了Android使用Scroller实现弹性滑动展示的具体代码,供大家参考,具体内容如下 scrollTo、scrollBy View内部为了实现滑动提供了这两个方法,但是使用这两个方法滑动的效果是瞬间的不够平滑,如何...
scroller类用法解析和scroller类实战案例类似ViewPager滑动功能
自己写的关于scroller的一个小demo,感兴趣的朋友可以下载下来看看,也可以查看我的文章产看更多的解析过程: http://blog.csdn.net/Anny_Lin/article/details/50346353
在学习使用Scroller之前,需要明白scrollTo()、scrollBy()方法。 一、View的scrollTo()、scrollBy() scrollTo、scrollBy方法是View中的,因此任何的View都可以通过这两种方法进行移动。首先要明白的是,scrollTo、...
Scroller的使用主要为3步: 1、初始化Scroller 2、重写computeScroll()方法 computeScroll()是在View的draw的时候调用的,而invalidate会导致View重绘,所以在重写computeScroll()之后,我们要使用invalidate...
本文实例为大家分享了Android弹性滑动类Scroller的具体代码,供大家参考,具体内容如下 Scroller是什么 Scroller就是一个滑动帮助类。它并不可以使View真正的滑动,而是配合scrollTo/ScrollBy让view产生缓慢的滑动...
Android 5.0 Lolipop 使用材料设计,旧的 QuickScroll 库不支持此功能。 这个新库还重构了 QuickScroll 代码,因此您可以通过 xml 属性轻松更改 Scroller 的样式,并在 java 代码中添加新的滚动条样式。 该库还...
3.3.1 使用Scroller 136 3.3.2 通过动画 138 3.3.3 使用延时策略 139 3.4 View的事件分发机制 140 3.4.1 点击事件的传递规则 140 3.4.2 事件分发的源码解析 144 3.5 View的滑动冲突 154 3.5.1 常见的滑动...
3.3.1 使用Scroller / 136 3.3.2 通过动画 / 138 3.3.3 使用延时策略 / 139 3.4 View的事件分发机制 / 140 3.4.1 点击事件的传递规则 / 140 3.4.2 事件分发的源码解析 / 144 3.5 View的滑动冲突 / 154 ...
实现了一个可滑动显示图片的控件,用于了解Android的触控机制,Scroller和VelocityTracker的用法
Android利用ViewPager实现类微信的左右滑动效果,详细代码注解解析setOnPageChangeListener各参数意义以及使用方法
/ 441 12.3.1 照片墙效果 / 441 12.3.2 优化列表的卡顿现象 / 446 第13章 综合技术 / 448 13.1 使用Crash Handler来获取应用的crash信息 / 449 13.2 使用multidex来解决方法数越界 / 455 13.3 Android的动态...
2.2 Android Studio高级使用技巧 19 2.2.1 更新SDK 20 2.2.2 Android Studio常用界面 21 2.2.3 导入Android Studio工程 23 2.3 ADB命令使用技巧 24 2.3.1 ADB基础 24 2.3.2 ADB常用命令 25 2.3.3 ADB命令来源...
这里来给大家带来使用Scroller的小例子,同时也能用来帮助初步解除的读者更加熟悉的掌握Scroller的使用,掌握好了Scroller的使用我们就能实现很多滑动的效果。例如侧滑菜单,launcher,ListView的下拉刷新等等效果,...
继承自ViewGroup然后配合Scroller完成滑动效果 主要弄清楚scrollTo和scrollBy 及scroller的用法即可很容易实现
第三章 使用Graphics2D实现动态效果 64 3.1 概述 64 3.2 invalidate()方法 65 3.3 坐标转换 69 3.4 剪切区(Clip) 73 3.5 案例:指针走动的手表 82 3.6 练习作业 88 第四章 双缓存技术 89 4.1 双缓存 89 4.2 在...
弹性滚动Scroller的用法 速度轨迹追踪器VelocityTracker的用法 如何处理滑动事件冲突 dispatchTouchEvent:(外部拦截)告诉此ScrollLayout的父布局,什么时候该拦截触摸事件,什么时候不该拦截触摸事件 ...