重写自己的view,覆盖父类的overScrollBy方法。
详细内容可以查看我的网站:
http://1.playandroid.duapp.com/index.jsp
代码:
import android.content.Context;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.widget.ScrollView;
/**
* ClassName:MtScrollView
* Function: TODO ADD FUNCTION .
*
* VERSION DATE AUTHOR CHANGE/COMMENT
* ──────────────────────────────────————————————————————————
* (产品版本号) 2012-4-23 duweibin create
*/
public class MtScrollView extends ScrollView {
private static final int MAX_Y_OVERSCROLL_DISTANCE = 200;
private Context mContext;
private int mMaxYOverscrollDistance;
public MtScrollView(Context context){
super(context);
mContext = context;
initBounceListView();
}
public MtScrollView(Context context, AttributeSet attrs){
super(context, attrs);
mContext = context;
initBounceListView();
}
public MtScrollView(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
mContext = context;
initBounceListView();
}
private void initBounceListView(){
final DisplayMetrics metrics = mContext.getResources().getDisplayMetrics();
final float density = metrics.density;
mMaxYOverscrollDistance = (int) (density * MAX_Y_OVERSCROLL_DISTANCE);
}
@Override
protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent){
//这块是关键性代码
return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, mMaxYOverscrollDistance, isTouchEvent);
}
}
针对2.3以上版本,包括2.3
分享到:
相关推荐
用过iphone的朋友相信都体验过页面上拉下拉有一个弹性的效果,使用起来用户体验很好;Android并没有给我们封装这样一个效果,我们来看下在Android里如何实现这个效果。先看效果,感觉有些时候还是蛮实用的。 思路:...
4. 兼容性:测试在不同Android版本上的兼容性,尤其是阴影和弹性效果在低版本系统中的表现。 5. 动画过渡:可以考虑添加更多的过渡动画,如淡入淡出,提升用户体验。 总的来说,这个侧拉抽屉的实现结合了Android的`...
3. **添加弹性效果**:当用户滑动到ScrollView的顶部或底部时,如果继续滑动,我们可以根据计算出的速度和距离,使用动画来模拟弹性效果。这可以通过设置一个逐渐减慢的动画,使得滚动条在达到边界后逐渐停止,而...
本篇将深入探讨如何在Android中实现ListView的3D弹性滚动,即Fling效果。 首先,要理解3D效果的本质,它通常是通过改变ListView项的透明度、大小或位置来模拟深度感。在Android中,我们可以通过自定义Adapter和...
我们可以通过设置关键帧来模拟弹性效果。 5. **检测边界**: 在动画执行过程中,需要不断检测视图的位置,一旦达到最大位移或者已经完全恢复到原始位置,就停止动画。 6. **处理子View**: 如果自定义的...
贝赛尔曲线是一种参数化的曲线,广泛应用于图形设计和计算机图形学中,能够创造出平滑且富有弹性的过渡效果。 - 贝赛尔曲线的绘制,首先需要确定四个关键点:起始点、两个控制点和结束点。 - 在Android开发中,可以...
5. 回弹效果:为了增加用户体验,可以添加弹性回弹效果,当用户松手后,抽屉能够根据当前速度自然回弹到完全打开或关闭状态。 6. 触发事件:当抽屉打开或关闭时,可能需要触发相应的回调,以便其他组件能响应这些...
在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表,具有良好的滚动性能和内存管理。然而,要实现一个弹性的ListView,即所谓的Pull to Refresh(下拉刷新)和Load More(上拉加载更多)功能,...
SpringRecyclerView SpringRecyclerView是一个RecyclerView具有弹簧效果,当被拖动或flinged到overScroll。 ListView版本:https : //github.com/gjiazhe/SpringListView
在本教程中,我们将深入探讨如何创建一个自定义的ViewPager,使其具有酷炫的页面切换动画以及带有弹性效果的页面指示器。 首先,我们需要理解ViewPager的基本工作原理。ViewPager是Android Support Library的一部分...
在Android平台上,动画效果是提升用户体验的关键因素之一。"弹球效果"是Android动画中的一种常见且有趣的实现,它可以为用户界面增添动态美感和交互性。让我们深入探讨一下如何在Android中实现这样的动画效果。 ...
5. 处理边界条件:在实现弹性效果时,需要考虑内容区域是否已滑动到顶部或底部,以及在这些边界条件下的动画处理。 6. 性能优化:弹性滚动和悬浮头可能会对性能产生一定影响,因此需要注意减少不必要的计算,合理...
- 可参考开源库,如`android-open-project`中的BounceListView项目,学习其源码实现,理解如何结合OverScroller和ListView达到弹性效果。 总之,Android的弹性ListView是通过自定义ListView组件和OverScroller实现...
为了实现气泡的碰撞效果,可能还需要计算物理运动规律,如弹性碰撞等。 接下来,魔法效果的实现可能涉及到粒子系统(Particle System)。这是一种常见的特效生成技术,通过大量小元素(粒子)的组合来模拟复杂效果...
ReboundScrollView是一个仿照Facebook开源库Rebound实现的滚动视图,它旨在提供类似于物理世界的弹性效果,让用户在滑动时感受到更自然、更有趣的交互体验。这个自定义控件不仅具备了ScrollView的基本功能,还额外...
- 在Android中实现弹性效果,通常需要自定义一个View或者ViewGroup,这样可以完全控制视图的行为和绘制过程。自定义View需要重写`onDraw()`方法进行绘制,以及`onMeasure()`和`onLayout()`方法来处理尺寸和布局。 ...
在Android开发中,为了提升用户体验,常常需要设计各种动态效果,其中一种常见的是伸缩弹力分布菜单。这种效果能够使菜单项在展开和收缩时展现出弹性和流畅性,为用户带来直观且有趣的交互体验。本文将深入探讨如何...
2. **物理模拟**:为了使翻页效果看起来更真实,需要模拟纸张的物理特性,如重力、摩擦力和弹性。这通常涉及到复杂的数学计算,例如贝塞尔曲线用于平滑过渡,以及牛顿运动定律来模拟物体的动态行为。 3. **自定义...
5. **弹性动画**:模拟物理世界的弹性运动,如弹簧效果,使动画更自然。 6. **路径动画**:视图沿着特定路径移动,可用于复杂的导航效果。 7. **组合动画**:多个动画同时或顺序执行,可实现复杂的交互效果。 8. **...