- 浏览: 707401 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
葫芦瓢:
葫芦瓢 写道专注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 9776Android 4.1 (Jelly Bean ... -
短信拦截
2012-09-25 20:40 2090最近写一个应用(A),需要拦截短信分析。一般是 ... -
Android 使用WebView.loadData中文乱码解决办法
2012-07-19 15:09 9600博主在使用WebView的loadData方法时发 ... -
Android HttpClient基本使用方法
2012-07-05 14:15 107898这里只介绍如何使用HttpClient发起GET或者POST请 ... -
Android XML定义颜色
2012-06-09 13:15 0在res/colors.xml中添加如下代码: 定义C ... -
Activity和Task的设计思路和方法
2012-03-29 20:20 1256Activity和 Task是 Android ... -
显示PopupWindow
2012-03-16 10:04 16677PopupWindow可 ... -
存储文件的ContentProvider
2012-03-08 23:37 9411基于SQLite的ContentProvider ... -
Android文件存储
2012-03-08 22:34 19475Internal Storage内部存储空 ... -
Android 使用Notification
2012-03-07 10:26 2243用惯了Android的人在刚拿到iPhone的 ... -
Android用软键盘将整个界面推上去
2012-03-04 17:11 35900在Android UI中 ... -
onInterceptTouchEvent和onTouchEvent调用时序
2012-02-11 23:42 1071onInterceptTouchEvent() ... -
使用ConnectivityManager监听网络状态变化
2011-12-24 11:16 29856mIntenFilter = new IntentFilte ... -
Window Manager
2012-03-22 23:51 1556Android的窗口机制基于WindowManager,可以通 ... -
CommonsWare Android Components
2011-12-17 16:10 1765CommonsWare Android Com ... -
Android中图片缩放
2011-12-17 00:09 1931下载的图片如果过大,可能导致内存溢出。需要做压 ... -
Android 使用Parcelable序列化对象
2011-12-16 23:43 36603Android序列化对象主要有两种方法,实现S ... -
PreferenceActivity
2011-12-12 22:54 922传送门:http://www.cnblogs.com/wser ... -
View.scrollBy()与View.scrollTo()的使用
2011-12-12 22:40 19611scrollTo()和scrollBy()都是V ... -
Android 新浪微博授权
2011-12-11 17:13 7512OAuth方式 通过网页方式授权 实现方法,三个步骤 1.使用 ...
相关推荐
在Android开发中,`Scroller`是一个非常重要的工具类,主要用于实现平滑的滚动效果。它并不直接控制View的移动,而是提供一个离散的、可...理解并熟练掌握`Scroller`的使用,对于提升Android应用的用户体验至关重要。
总结,`Scroller`是Android中实现平滑滚动效果的重要工具,通过合理的使用和定制,我们可以创造出丰富多样的滚动动画。理解其工作原理并结合`Interpolator`,可以提升用户界面的交互体验。在实际项目中,应根据需求...
通过分析该项目的代码,可以更深入地理解Scroller的工作原理和使用方法。 总之,Scroller是Android中实现平滑滚动动画的一个高效工具,它允许开发者自定义滚动速度和时间,从而创建出各种定制化的滚动效果。通过...
在Android开发中,`Scroller`是一个非常重要的组件,它主要用于处理平滑的滚动效果,尤其是在没有...理解其工作原理和使用方法对于提升用户体验至关重要。通过实践和研究提供的代码示例,可以进一步巩固这一知识点。
Scroller的使用通常与`computeScroll()`方法结合,该方法在View的`onDraw()`回调中被调用。Scroller会根据设定的起始位置、目标位置和缓动因子计算出滚动动画的过程,然后在`computeScroll()`中检查是否还有剩余的...
在Android开发中,`Scroller`是一个非常重要的组件,它提供了平滑的滚动动画效果,广泛应用于各种滑动界面,如ScrollView、ViewPager等。本文将深入解析`Scroller`的工作原理,并通过一个简单的Demo来展示如何在实际...
在Android开发中,`Scroller`是一个非常重要的组件,它主要用于处理滑动动画,而`ViewPager`则是一个常用的页面滑动容器,常用于实现类似Tab切换或者图片轮播的效果。本练习将结合`Scroller`和`ViewPager`,教你如何...
总的来说,`Scroller`是Android中实现平滑滚动效果的重要工具,理解其工作原理和使用方法对于提升用户体验至关重要。通过合理地利用`Scroller`,我们可以为用户创造出更加流畅、自然的交互体验。
在Android开发中,`Scroller`是一个非常重要的工具类,它并不直接控制View的滚动,而是提供了一套平滑滚动的计算逻辑。`Scroller`主要用于处理View的弹性滑动效果,比如在ScrollView、ViewPager或者自定义View中实现...
在Android开发中,动画效果是提升用户体验的重要手段之一。`Scroller`类是Android系统提供的一种用于处理平滑滚动和动画的...在实际项目中,`Scroller`通常与`View`的滚动方法结合使用,创造出更加丰富的用户交互体验。
在Android开发中,`Scroller`和`computeScroll`是两个关键的概念,它们与ViewGroup的滚动动画密切相关。本文将详细解析这两个概念及其调用机制之间的关系。 首先,`Scroller`是一个内部类,它并不直接参与ViewGroup...
以下是一个简单的`Scroller`使用示例: ```java public class TestScrollView extends ScrollView { private Scroller scroller; public TestScrollView(Context context) { super(context); initScroller(); ...
这个示例可能包括一个自定义的ScrollView或者ViewPager子类,里面实现了`GestureDetector`的监听和`Scroller`的使用。通过分析和运行这个示例,你可以更深入地理解Fling操作的工作机制。 总的来说,惯性滑动切换...
本文实例为大家分享了Android使用Scroller实现弹性滑动展示的具体代码,供大家参考,具体内容如下 scrollTo、scrollBy View内部为了实现滑动提供了这两个方法,但是使用这两个方法滑动的效果是瞬间的不够平滑,如何...
在`Scroller简单例子`中,我们将探讨如何使用Scroller的API来实现这样的效果。首先,我们需要理解Scroller的基本工作原理。Scroller并没有直接改变View的位置,而是通过计算出一系列的偏移量,然后将这些偏移量传递...
`Scroller`类并没有继承自Android的View或者 ViewGroup,它主要通过计算离最终位置的剩余距离,然后提供一系列的方法,如`computeScrollOffset()`,让开发者可以获取当前的滚动位置,从而更新View的状态。...
要自定义Scroller,我们需要继承Android的Scroller类,并重写其中的关键方法。这些方法包括`computeScrollOffset()`,它用于计算当前滑动的位置;`fling()`,用于启动一个快速滑动动画,通常在用户松开手指后调用;...
第二步:使用 Scroller 的 startScroll() 方法来启动滑动,startScroll() 方法传入一些参数,包括开始位置、结束位置、开始时间和滑动到结束位置的完成时间。 ``` mScroller.startScroll(int startX, int startY, ...
首先,让我们了解一下Scroller类的基本使用方法。Scroller类提供了两个重要的方法:startScroll和computeScroll。startScroll方法用于启动一个滚动动画,而computeScroll方法用于计算当前的滚动位置。 startScroll...