android中类似于gif 实现图片的动画效果
案例:实现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>
更多相关文章
- Android(安卓)多级菜单实现
- ArcGIS API For Android离线地图的实现
- Android该系统提供的服务--Vibrator(振子)
- Android视音频录制实现步骤(Android学习随笔八)
- Android(安卓)Drawable 那些不为人知的高效用法
- android屏蔽home键的实现
- Android基础小技术点:Android(安卓)ListView设置背景图片及分割线
- 浅谈Java中Collections.sort对List排序的两种方法
- python起点网月票榜字体反爬案例