PullToRefresh修改默认的刷新加载动画
PullToRefresh地址 https://github.com/chrisbanes/Android-PullToRefresh
开源框架PullToRefresh在android开发中的使用非常广泛,通常我们使用PullToRefresh是将这样的项目作依赖添加到自己的项目上,但是这样我们需要上传依赖项目和自己的项目,虽然这并不存在任何问题。然,一个有强迫症的程序Yuan,为了项目的整洁,我更愿意使用jar包或将依赖项目集成到自己的项目中。接下来就将PullToRefresh添加到自己的项目中。
整洁的代码风格
修改默认的刷新加载动画
效果图
其实就这么简单,只需从PullToRefresh源码中复制上图中的类到项目中,然后就是排错了,导包错误及引用相应的资源文件(这个过程会比较乏味郁闷)。上图只提取PullToRefreshListView和PullToRefreshScrollView,感觉从我的角度来看,这两个组件的使用频率很高,所以就将其提取出来加入项目中。
使用下拉刷新动画
①修改PullToRefreshBase.java的createLoadingLayout()方法:
case ROTATE: default:
//return new RotateLoadingLayout(context, mode, scrollDirection, attrs);
return new FrameAnimationLayout(context, mode, scrollDirection, attrs);
②创建FrameAnimationLayout.java:
package com.android.refresh;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.Drawable;
import com.android.refresh.PullToRefreshBase.Mode;
import com.android.refresh.PullToRefreshBase.Orientation;
import com.android.app.R;
/** * @author 祁连山 * @desc 帧动画加载布局 * @date 2015/1/8 */
public class FrameAnimationLayout extends LoadingLayout {
private AnimationDrawable mAnimationDrawable;
public FrameAnimationLayout(Context context, Mode mode, Orientation scrollDirection, TypedArray attrs) { super(context, mode, scrollDirection, attrs);
mHeaderImage.setImageResource(R.drawable.drawable_waiting);
mAnimationDrawable = (AnimationDrawable) mHeaderImage.getDrawable();
}
@Override
protected int getDefaultDrawableResId() {
return R.drawable.waiting_01;
}
@Override
protected void onLoadingDrawableSet(Drawable imageDrawable) { }
@Override
protected void onPullImpl(float scaleOfLayout) { }
@Override
protected void pullToRefreshImpl() { }
@Override protected void refreshingImpl()
{ mAnimationDrawable.start(); } @Override protected void releaseToRefreshImpl() { }
@Override protected void resetImpl() { }
}
③创建帧动画drawable_waiting.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/waiting_01" android:duration="90"/>
<item android:drawable="@drawable/waiting_02" android:duration="90"/>
<item android:drawable="@drawable/waiting_03" android:duration="90"/>
<item android:drawable="@drawable/waiting_04" android:duration="90"/>
<item android:drawable="@drawable/waiting_05" android:duration="90"/>
<item android:drawable="@drawable/waiting_06" android:duration="90"/>
<item android:drawable="@drawable/waiting_07" android:duration="90"/>
<item android:drawable="@drawable/waiting_08" android:duration="90"/>
<item android:drawable="@drawable/waiting_09" android:duration="90"/>
<item android:drawable="@drawable/waiting_10" android:duration="90"/>
<item android:drawable="@drawable/waiting_11" android:duration="90"/>
<item android:drawable="@drawable/waiting_12" android:duration="90"/>
</animation-list>
完成测试 到此就可以打开手机运行上来测试一下了,然后再调整效果到令自己满意为止。