美文网首页
PullToRefresh修改默认的刷新加载动画

PullToRefresh修改默认的刷新加载动画

作者: 红色草丛 | 来源:发表于2018-02-07 17:38 被阅读0次

    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>

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

    转载地址    http://blog.csdn.net/plmmmmlq/article/details/50068717

    相关文章

      网友评论

          本文标题:PullToRefresh修改默认的刷新加载动画

          本文链接:https://www.haomeiwen.com/subject/ghsazxtx.html