您的位置:首页 > 移动开发 > Android开发

android之animation-list+图片实现的粘稠的加载动画效果

2016-02-02 17:57 821 查看
Tween动画详解:/article/1892133.html

用animation-list+图片实现的粘稠的加载动画效果:

一:progressbar的动画加载

AnimationDrawable animation = new AnimationDrawable();

for (int i = 1; i < 61; i++) {

animation.addFrame(Drawable.createFromPath(path+"/lmb_jump_"+i+".png"), 50);
}

animation.setOneShot(false);

progressBar.setIndeterminateDrawable(animation);
animation.start();


举例二:

package com.example.loadingview;

import android.content.Context;
import android.graphics.drawable.AnimationDrawable;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;

public class LoadingView extends FrameLayout {

private Context mContext;
private ImageView ivLoading;
private AnimationDrawable loadingAniDrawable;

public LoadingView(Context context) {
super(context);
init(context);
}

public LoadingView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}

public LoadingView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}

private void init(Context context) {
mContext = context;
View view = View.inflate(mContext, R.layout.loading_animation_layout, this);
ivLoading = (ImageView) view.findViewById(R.id.iv_loading);
/**
* 这里设置的是setBackgroundResource,那么你获取的时候通过getBackground
*/
// ivLoading.setBackgroundResource(R.anim.loading_animation);
// loadingAniDrawable = (AnimationDrawable) ivLoading.getBackground();
/**
* 这里设置的是setImageResource,那么你获取的时候通过getDrawable
*/
ivLoading.setImageResource(R.anim.loading_animation);
loadingAniDrawable = (AnimationDrawable) ivLoading.getDrawable();
if (View.GONE == getVisibility()) {
loadingAniDrawable.stop();
}
}

@Override
public void setVisibility(int visibility) {
super.setVisibility(visibility);
if (View.GONE == visibility) {// 不可见时不执行动画
stop();
} else {// 可见时执行动画
start();
}
}

public void stop() {
if (loadingAniDrawable.isRunning()) {
loadingAniDrawable.stop();
}
}

public void start() {
if (!loadingAniDrawable.isRunning()) {
loadingAniDrawable.start();
}
}
}


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:orientation="vertical" >

<ImageView
android:id="@+id/iv_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lmb_jump_1" />

<TextView
android:id="@+id/tv_click_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="努力加载中" />
</LinearLayout>

</RelativeLayout>


此动画集合:animation-list的xml,可放在anim或者drawable目录下均可

<?xml version="1.0" encoding="UTF-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false" >

<!-- oneshot:true只显示一次,false:无限循环 -->
<item
android:drawable="@drawable/lmb_jump_1"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_1"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_2"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_3"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_4"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_5"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_6"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_7"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_8"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_9"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_11"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_12"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_13"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_14"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_15"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_16"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_17"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_18"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_19"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_21"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_22"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_23"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_24"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_25"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_26"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_27"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_28"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_29"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_30"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_31"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_32"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_33"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_34"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_35"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_36"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_37"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_38"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_39"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_40"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_41"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_42"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_43"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_44"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_45"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_46"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_47"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_48"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_49"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_50"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_51"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_52"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_53"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_54"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_55"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_56"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_57"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_58"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_59"
android:duration="50"/>
<item
android:drawable="@drawable/lmb_jump_60"
android:duration="50"/>

</animation-list>


demo:http://download.csdn.net/detail/zhongwn/9425952
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: