main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="180dip"
android:layout_height="48dip"
android:background="@drawable/pd_bg"
android:gravity="center"
android:orientation="horizontal" >
<ImageView
android:id="@+id/mImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:text="请稍后..."
android:textColor="@android:color/black" />
</LinearLayout>
</LinearLayout>
在anim文件夹下定义frame_animation.xml帧动画
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false" >
<item android:drawable="@drawable/scan_01" android:duration="100"/>
<item android:drawable="@drawable/scan_02" android:duration="100" />
<item android:drawable="@drawable/scan_03" android:duration="100" />
<item android:drawable="@drawable/scan_04" android:duration="100" />
<item android:drawable="@drawable/scan_05" android:duration="100" />
<item android:drawable="@drawable/scan_06" android:duration="100" />
<item android:drawable="@drawable/scan_07" android:duration="100" />
<item android:drawable="@drawable/scan_08" android:duration="100" />
</animation-list>
ActivityMain
package com.android;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.ImageView;
public class ActivityMain extends Activity {
//AnimationDrawable对象
AnimationDrawable frameAnimation;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取显示动画的View
ImageView image = (ImageView) findViewById(R.id.mImage);
//设置图片背景为动画
image.setBackgroundResource(R.anim.frame_animation);
//获取刚设置的背景Drawable转为AnimationDrawable对象
frameAnimation = (AnimationDrawable) image.getBackground();
}
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
//停止动画
frameAnimation.stop();
return true;
}
return super.onTouchEvent(event);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
//当Activity获取焦点时执行动画
frameAnimation.start();
super.onWindowFocusChanged(hasFocus);
}
}
android:oneshot="false"表示动画循环播放
android:oneshot="true"表示动画只播放一次,停留在最后一帧。