`
iaiai
  • 浏览: 2196866 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Adnroid 类似iPhone的弹性ListView滚动

 
阅读更多
从2.3开始,android开始支持listview的overscroll, 应该很方便可以做出类似iPhone的弹性滚动,及越过list顶端或者底端,然后弹性滚回。大致如下:

package com.iaiai.activity;

import android.content.Context;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.widget.ListView;

/**
 * 
 * <p>
 * Title: BounceListView.java
 * </p>
 * <p>
 * E-Mail: 176291935@qq.com
 * </p>
 * <p>
 * QQ: 176291935
 * </p>
 * <p>
 * Http: iaiai.iteye.com
 * </p>
 * <p>
 * Create time: 2011-12-30 下午3:07:49
 * </p>
 * 
 * @author 丸子
 * @version 0.0.1
 */
public class BounceListView extends ListView {

	private static final int MAX_Y_OVERSCROLL_DISTANCE = 500;

	private Context mContext;
	private int mMaxYOverscrollDistance;

	public BounceListView(Context context) {
		super(context);
		mContext = context;
		initBounceListView();
	}

	public BounceListView(Context context, AttributeSet attrs) {
		super(context, attrs);
		mContext = context;
		initBounceListView();
	}

	public BounceListView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		mContext = context;
		initBounceListView();
	}

	private void initBounceListView() {
		// get the density of the screen and do some maths with it on the max
		// overscroll distance
		// variable so that you get similar behaviors no matter what the screen
		// size

		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) {
		// This is where the magic happens, we have replaced the incoming
		// maxOverScrollY with our own custom variable mMaxYOverscrollDistance;
		return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX,
				mMaxYOverscrollDistance, isTouchEvent);
	}

}
分享到:
评论

相关推荐

    Android 实现ListView滚动到底部自动加载数据

    总之,实现Android ListView滚动到底部自动加载数据涉及到的主要步骤包括:设置适配器、监听滚动事件、判断是否滚动到底部、加载新数据和更新列表。这个过程需要对Android的基础组件和数据操作有深入的理解,同时也...

    Android应用源码之ListView滚动气泡提示_Android.zip

    Android应用源码之ListView滚动气泡提示_Android

    Android 完美的listview自动循环滚动

    "Android 完美的listview自动循环滚动"这个主题聚焦于如何使ListView在到达列表末尾时能够自动循环回滚到顶部,实现类似轮播的效果。这种功能常见于广告轮播、商品推荐等场景,可以提供流畅且连续的用户体验。 首先...

    Android应用源码之ListView滚动气泡提示.zip

    ListView滚动气泡提示是Android应用中常见的一种交互设计,它通常在用户滚动ListView时显示,用来突出显示或提醒用户某些重要的信息。这个压缩包“Android应用源码之ListView滚动气泡提示.zip”可能包含了实现这一...

    Android ListView滚动到底部自动加载数据

    `Android ListView滚动到底部自动加载数据`是一个常见的功能需求,特别是在实现无限滚动或者分页加载的场景下,比如社交媒体应用、电商应用的商品列表等。当用户滚动到ListView的底部时,系统自动触发加载更多数据的...

    android的listview嵌套listview,列表嵌套列表 android studio版本

    在Android开发中,ListView是一种常用的视图组件,用于展示大量数据列表。当需求涉及列表中的每个条目本身也需要展示一个子列表时,我们就会遇到ListView的嵌套问题。本教程将详细讲解如何在Android Studio环境下...

    Android实现iphone圆角ListView和点击的效果

    在Android开发中,为了使应用界面更接近iOS的风格或者增加独特的用户体验,有时我们需要实现类似iPhone的圆角ListView以及点击效果。本篇文章将详细讲解如何在Android中复现这一功能。 首先,我们要创建一个带有...

    Android 类似于windows listview的控件

    在Android开发中,ListView是一种非常常见的控件,它与Windows中的ListView控件有着类似的功能,用于展示可滚动的多行数据列表。ListView以其高度可定制性和高效的数据处理能力,成为了展示大量数据的理想选择。本篇...

    android仿iphone的listview下拉更新.zip

    在Android开发中,为了提供与iOS类似的用户体验,开发者经常需要实现ListView的下拉刷新功能,这在标题"android仿iphone的listview下拉更新.zip"中提到。这个压缩包文件很可能是包含了一个示例项目或者代码片段,...

    解决Android ListView滚动布局错位

    在Android开发中,ListView是一个非常常见的组件,用于展示大量数据并支持滚动。然而,当ListView包含多种不同类型的布局时,可能会遇到滚动过程中布局错位的问题。这个问题通常发生在使用`convertView`进行视图复用...

    android listview滚动到底自动加载,下拉刷新

    "android listview滚动到底自动加载,下拉刷新"是常见的功能需求,通常应用于新闻、社交媒体等应用中,为用户提供无缝的数据加载体验。本篇将详细介绍如何实现这一功能。 首先,我们需要了解ListView的基本用法。...

    监听listview垂直滚动距离

    在Android开发中,ListView是一种常用的控件,用于展示大量数据并支持滚动操作。"监听listview垂直滚动距离"是Android开发中的一个常见需求,它可以帮助开发者实现诸如无限滚动加载、顶部悬浮按钮(如“返回顶部”)...

    Android:弹性ListView

    在Android开发中,"弹性ListView"(Bounce ListView)是一种增强型的ListView,它提供了类似iOS设备上列表视图的滚动回弹效果。这种效果在用户滚动到列表顶部或底部时,会有一个自然的反弹动作,增加了用户体验的...

    Android实现Iphone中ListView上下加载数据效果

    而"Android实现Iphone中ListView上下加载数据效果"是借鉴了iOS中UITableView的无限滚动概念,即当用户滚动到ListView的顶部或底部时,自动加载更多数据。这样的设计既提升了用户体验,也简化了数据加载的操作。 ...

    Android应用源码之ListView滚动气泡提示.zip项目安卓应用源码下载

    Android应用源码之ListView滚动气泡提示.zip项目安卓应用源码下载Android应用源码之ListView滚动气泡提示.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考

    安卓Android源码——ListView滚动气泡提示.rar

    这个“安卓Android源码——ListView滚动气泡提示.rar”压缩包很可能是提供了一个关于如何在ListView滚动时显示气泡提示的示例代码。这种功能常用于通知用户一些重要的信息或者在列表项上显示动态更新的数据。 在...

    android listview 自动往上滚动

    然而,"android listview 自动往上滚动"的效果,通常指的是ListView的自动回弹或者滚动动画,这种效果可以为应用增添一些动态的用户体验。 首先,实现ListView自动往上滚动的效果,主要涉及到以下知识点: 1. **...

Global site tag (gtag.js) - Google Analytics