Adnroid 两种下拉刷新 方式的实现 sina刷新 gmail刷新

sina刷新


这种下拉刷新的方式是比较简单的。上个图:


http://blog.csdn.net/miueugene/article/details/21445743





这种刷新方式的思路是这样的:


首先是需要一个HeaderVIew也就是刷新时头部所显示出来的数


据。这个view的布局随你,长啥样自己定夺。


其他不是特别重要,重要的是用户触摸事件的捕捉,看到


github上的大神的一些方法是比较正规的,我就自己用自己的


方法尝试,主要是捕捉到用户的点击事件来计算用户所触摸到


的位置然后来更新头部布局的位置。



这个重要的代码贴出来:


	case MotionEvent.ACTION_MOVE:
			currentY = (int) ev.getY();
			if (!ISREFRESH) {
				if (currentY > getHeight()/10) {
					progressBar.setVisibility(0);
					tipsTextview.setVisibility(0);
					lastUpdatedTextView.setVisibility(0);
					tempY=tempY+5;
					headView.setPadding(0, -1 * headContentHeight + tempY, 0, 0);
					headView.invalidate();
					if (tempY >= headContentHeight) {
						tempY = 0;
						add.GetNewTExt("new text");
						ISREFRESH = true;
					}
				}
			}
			break;
		case MotionEvent.ACTION_UP:
			progressBar.setVisibility(8);
			tipsTextview.setVisibility(8);
			lastUpdatedTextView.setVisibility(8);
			ISREFRESH = false;
			break;
		}



ISREFRESH判断是否刷新,如果刷新结束了就不需要再加载,然


后需要隐藏头部布局,通过headView.setPadding这个方法来实时


地控制头部布局与顶部位置的距离,达到慢慢出现的效果。至于


其他的一些效果,比如向上拉的时候慢慢隐藏等等效果的道理都


是一样的。




--------------------------------------------------------------------------------



Gmail刷新



4.0以后的gmail(好象是)的下拉刷新的效果比较炫,如图:





这种下拉刷新的效果就变成了一条线了。


这种效果有两种实现方式,代码我就不贴了,比较简单。


1.通过画图的方式实现


自己设置一个大小小于5或者是通过比例来设置的大小的头部布


局,这个布局就只是一个布局,里面没有任何东西。然后上面


提到的用户操作的时候,头部布局就开始绘图,从中间的地方


往两边画,其实就是画Rect,画的速度和用户所触摸的位置来


控制,通过自己定义的接口去动态的更新绘图就可以了,不过


个人感觉这个方法不是特别好。


2.通过progress来显示


这个就简单了,就是在头部布局中添加两个progress,


progress的进度条的实现就不用讲了,主要还是通过用户的位


置来判断进度条的更新速度,而且还要做一个处理的是,用户


向上滑动的时候,进度条需要往回走,这些都是比较简单的一


些方法。



哪里有错,尽管纠正。


给一个Demo的链接  都是其他网友写的,可以看看。


源码链接



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值