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的链接 都是其他网友写的,可以看看。