第1步
找出你想要的動畫圖像。它們應該按順序排列,以便我們可以持續地翻閱它。文件類型如GIF,PNG等圖像後發現的,將它們複製並通過複製把它們和
「你的項目」粘貼 - >水庫 - >繪製 - MDPI - >粘貼圖像
繪製對象有三個類別
hdpi-> high dots per inch
ldpi->large dots per inch
mdpi->medium dots per inch
步驟2
有兩種方法來執行此動畫。 1)通過創建「BitmapDrawable」對象,2)通過創建「動畫」xml文件。我們將逐一看到兩種方法。
與 「BitmapDrawable」
Syntax:
BitmapDrawable object=(BitmapDrawable) getResources().getDrawable(R.drawable.<image_name>);
Example
Suppose I have image named "sample.png" in "res.drawable" directory, then
BitmapDrawable frame1=(BitmapDrawable)getResources().getDrawable(R.drawable.sample);
AnimationDrawable animation = new AnimationDrawable();
Now, we can add frames which we have created above as like you want.
Syntax:
AnimationDrawable.addFrame(BitmapDrawable,duration);
Example
animation.addFrame(frame1,1000);
In this animation, while you start this animation, it will stop after last added frame. If you like to continue this animation, following method must be implemented.
animation.setOneShot(假)做;
Now, bind "ImageView" object of layout
ImageView img=(ImageView)findViewById(R.id.imageView1);
img.setBackgroundDrawable(animation);
animation.start();
animation.stop();
Description:
Duration is in milliseconds.
setBackgroundDrawable(animation) method will set background with animation and give control over animation.
start() method will start your animation and stop() will stop this animation.
<?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/sample1" android:duration="50"/>
<item android:drawable="@drawable/sample2" android:duration="50"/>
<item android:drawable="@drawable/sample3" android:duration="50"/>
</animation-list>
In above code, I have added 3 frames with "android:drawable" attribute and duration in milliseconds.
Now, bind "ImageView" object with layout and implement following methods.
ImageView img=(ImageView)findViewById(R.id.imageView1);
img.setImageBitmap(null);
img.setBackgroundResource(R.anim.animation);
Next, create object of "AnimatinDrawable" and give background to "AnimationDrawable" so that it can handle it.
AnimationDrawable animation = (AnimationDrawable) img.getBackground();
animation.start();
animation.stop();
使用 「BitmapDrawable」
Main.java
package com.animationapp;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class AnimationAppActvity extends Activity {
/** Called when the activity is first created. */
ImageView img;
Button btnStart,btnStop;
AnimationDrawable animation;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
int duration = 150;
img = (ImageView)findViewById(R.id.imageView1);
BitmapDrawable frame1 =
(BitmapDrawable)getResources().getDrawable(R.drawable.d1);
BitmapDrawable frame2 =
(BitmapDrawable)getResources().getDrawable(R.drawable.d2);
BitmapDrawable frame3 =
(BitmapDrawable)getResources().getDrawable(R.drawable.d3);
animation = new AnimationDrawable();
animation.addFrame(frame1, duration);
animation.addFrame(frame2, duration);
animation.addFrame(frame3, duration);
animation.setOneShot(false);
img.setBackgroundDrawable(animation);
btnStart = (Button)findViewById(R.id.btnStart);
btnStop = (Button)findViewById(R.id.btnStop);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
animation.start();
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
animation.stop();
}
});
}
}
版式文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<ImageView
android:layout_height="wrap_content"
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:minHeight="191px" android:minWidth="285px">
</ImageView>
<Button
android:text="Start"
android:id="@+id/btnStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
<Button
android:text="Stop"
android:id="@+id/btnStop"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>
使用 「animation.xml」 文件
package com.AnimApp;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class AnimAppActivity extends Activity {
/** Called when the activity is first created. */
Button btnStart,btnStop;
ImageView img;
AnimationDrawable animation;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnStart=(Button)findViewById(R.id.button1);
btnStop=(Button)findViewById(R.id.button2);
img=(ImageView)findViewById(R.id.imageView1);
img.setBackgroundResource(R.anim.animation);
animation=(AnimationDrawable)img.getBackground();
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
animation.start();
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
animation.stop();
}
});
}
}
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/d1" android:duration="50"/>
<item android:drawable="@drawable/d2" android:duration="50"/>
<item android:drawable="@drawable/d3" android:duration="50"/>
</animation-list>
http://www.bogotobogo.com/Android/android19Animation.php – Android