修改PullToRefresh下拉刷新动画

来源:互联网 发布:unity3d做手机游戏 编辑:程序博客网 时间:2024/05/18 09:24

开源框架PullToRefresh在android开发中的使用非常广泛,通常我们使用PullToRefresh是将这样的项目作依赖添加到自己的项目上,但是这样我们需要上传依赖项目和自己的项目,虽然这并不存在任何问题。然,一个有强迫症的程序Yuan,为了项目的整洁,我更愿意使用jar包或将依赖项目集成到自己的项目中。接下来就将PullToRefresh添加到自己的项目中。

  • 整洁的代码风格
  • 修改默认的刷新加载动画

效果图

  • PullToRefresh包

其实就这么简单,只需从PullToRefresh源码中复制上图中的类到项目中,然后就是排错了,导包错误及引用相应的资源文件(这个过程会比较乏味郁闷)。上图只提取PullToRefreshListViewPullToRefreshScrollView,感觉从我的角度来看,这两个组件的使用频率很高,所以就将其提取出来加入项目中。


使用下拉刷新动画

①修改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>

完成测试
到此就可以打开手机运行上来测试一下了,然后再调整效果到令自己满意为止。

从今天开始转到CSDN博客来,小用MarkDown感觉很不错,赞一个。。。

1 0