首先,下载著名的刷新框架Android-PullToRefresh,其中simple为demo,library和extras作为项目包导入到simple中。
一,定义刷新动画的layout
在library下的com.handmark.pulltorefresh.library.internal包中的FlipLoadingLayout和RotateLoadingLayout。
- FlipLoadingLayout为ios风格的箭头颠倒的刷新动画
- RotateLoadingLayout为android风格的图片旋转动画
共同的设置方法是
- 1,getDefaultDrawableResId() //动画默认图片,可以替换为自己的图片
- 2,refreshingImpl() //正在刷新时的回调方法,可以设置开始动画
- 3,resetImpl() //重置
二,正在刷新时为图片居中旋转的效果
1,首先修改library中的pull_to_refresh_header_vertical.xml,去除文字的layout,图片layout水平居中
|
|
2,去除LoadingLayout中的关于textview的代码。
3,可以在RotateLoadingLayout中的getDefaultDrawableResId()方法替换成自己的图片。
三,设置自定义动画效果
1,首先设置一个简单的小人走的动画效果,在anim文件夹下新建一个xml,需要加载两张图片,控制图片的停留时间。
|
|
2,新建刷新动画的layout,TweenAnimLoadingLayout,类似于之前的源码中的FlipLoadingLayout和RotateLoadingLayout
主要设置初始化,和那几个关键方法就行。
|
|
3,替换之前的刷新layout为TweenAnimLoadingLayout。
找到library项目com.handmark.pulltorefresh.library包下的PullToRefreshListView,发现头脚的layout用的都是LoadingLayout,找到头脚layout的创建方法createLoadingLayout进入,在createLoadingLayout方法中再进入createLoadingLayout,找到最原始的新建动画layout的地方,把默认的RotateLoadingLayout改成TweenAnimLoadingLayout就行了。
在PullToRefreshBase类下,变为:
|
|
4,去除LoadingLayout中的关于textview的代码。