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

2018-02-07  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读