案例:实现gif动画效果,连续播放图片

由于是转载的,也就没必要多说,直接上代码

案例:在android中实现gif动态图片的效果:

EarthAnimationActivity.java

package com.codtech.android.samples.earthanimation;import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.view.View;import android.view.Window;import android.view.View.OnClickListener;import android.widget.Button;public class EarthAnimationActivity extends Activity {    private static final String TAG = "EarthAnimationActivity";protected static final int FORWARD = 0;protected static final int REVERSE = 1;private Button earthButton;private AnimationDrawable earthButtonAnimation;protected int direction;/** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.main);        earthButton = (Button) findViewById(R.id.earth_button);        earthButtonAnimation = (AnimationDrawable) earthButton.getBackground();        direction = FORWARD;                earthButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if ( ! earthButtonAnimation.isRunning() ) {earthButtonAnimation.start();earthButton.setText(R.string.click_me_to_stop);}else {earthButtonAnimation.stop();int resId = R.anim.earth_animation_rev;if ( direction == FORWARD ) {direction = REVERSE;}else {resId = R.anim.earth_animation;direction = FORWARD;}earthButton.setBackgroundResource(resId);earthButtonAnimation = (AnimationDrawable) earthButton.getBackground();earthButton.setText(R.string.click_me_to_start);}}                });    }/* (non-Javadoc) * @see android.app.Activity#onResume() */@Overrideprotected void onResume() {super.onResume();(new Timer(false)).schedule(new AnimationTimer(earthButtonAnimation), 100);}/* (non-Javadoc) * @see android.app.Activity#onPause() */@Overrideprotected void onPause() {super.onPause();earthButtonAnimation.stop();}private static class AnimationTimer extends TimerTask {AnimationDrawable animation;public AnimationTimer(AnimationDrawable animation) {this.animation = animation;}@Overridepublic void run() {animation.start();this.cancel();}}    }


main.xml

<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent" android:id="@+id/frame_layout"android:background="@drawable/space_background"><Button android:id="@+id/earth_button"android:text="@string/click_me_to_stop" android:layout_gravity="center"android:textStyle="bold" android:textColor="#ff9900"android:textSize="24dip"android:layout_marginBottom="12dip" android:layout_marginRight="12dip"android:layout_marginLeft="-30dip"android:layout_marginTop="12dip" android:maxHeight="296dip"android:maxWidth="296dip" android:layout_height="wrap_content"android:layout_width="wrap_content" android:width="296dip"android:height="296dip" ></Button></FrameLayout>


earth_animation_rev.xml

<?xml version="1.0" encoding="UTF-8"?><!-- Animation frames for earth --><!--  android:id="@+id/earth_animation_rev" --><animation-list xmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="false" android:visible="true"><item android:drawable="@drawable/earth9" android:duration="150" /><item android:drawable="@drawable/earth8" android:duration="150" /><item android:drawable="@drawable/earth7" android:duration="150" /><item android:drawable="@drawable/earth6" android:duration="150" /><item android:drawable="@drawable/earth5" android:duration="150" /><item android:drawable="@drawable/earth4" android:duration="150" /><item android:drawable="@drawable/earth3" android:duration="150" /><item android:drawable="@drawable/earth2" android:duration="150" /><item android:drawable="@drawable/earth1" android:duration="150" /><item android:drawable="@drawable/earth0" android:duration="150" /></animation-list>


earth_animation.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- Animation frames for earth -->
<!-- android:id="@+id/earth_animation" -->
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false" android:visible="true">
<item android:drawable="@drawable/earth0" android:duration="150" />
<item android:drawable="@drawable/earth1" android:duration="150" />
<item android:drawable="@drawable/earth2" android:duration="150" />
<item android:drawable="@drawable/earth3" android:duration="150" />
<item android:drawable="@drawable/earth4" android:duration="150" />
<item android:drawable="@drawable/earth5" android:duration="150" />
<item android:drawable="@drawable/earth6" android:duration="150" />
<item android:drawable="@drawable/earth7" android:duration="150" />
<item android:drawable="@drawable/earth8" android:duration="150" />
<item android:drawable="@drawable/earth9" android:duration="150" />
</animation-list>

更多相关文章

  1. Android(安卓)多级菜单实现
  2. ArcGIS API For Android离线地图的实现
  3. Android该系统提供的服务--Vibrator(振子)
  4. Android视音频录制实现步骤(Android学习随笔八)
  5. Android(安卓)Drawable 那些不为人知的高效用法
  6. android屏蔽home键的实现
  7. Android基础小技术点:Android(安卓)ListView设置背景图片及分割线
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. python起点网月票榜字体反爬案例

随机推荐

  1. Android Keymaps and Keyboard Input
  2. android 中的 pathview 效果
  3. Android(安卓)9.0 网络配置http访问问题
  4. Android UI控件详解-RadioGroup和RadioBu
  5. Android基于特征码查杀手机病毒
  6. Android debuggerd
  7. android 开机自动启动
  8. Android(安卓)仿火萤视频桌面 神奇的Live
  9. Android Porting
  10. (转载)android之PhoneGap入门