利用AnimationDrawable實現控制元件的背景圖片迴圈切換
阿新 • • 發佈:2019-01-22
一、適用情況
1)任何有 android:background =""
屬性的控制元件。
2)實現的效果:在同一個控制元件的位置,圖片迴圈切換。如果是幾張連續的圖片,你可以實現比如說小孩在跑步,檔案在傳輸等動畫效果。因為懶,沒有效果圖提供。
二、實現方式:
賊簡單,分三步走
1)在res/drawable下建立一個img_anim.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/img1"
android:duration="200"/>
<item
android:drawable="@drawable/img2"
android:duration="200"/>
<item
android:drawable="@drawable/img3"
android:duration="200"/>
<item
android:drawable ="@drawable/img4"
android:duration="200"/>
</animation-list>
其中 android:duration=”200”為圖片持續時間。android:oneshot=”false” 表示動畫如果不讓他停止他就一直執行,如果為true,則只執行一次。
2)MainActivity的佈局檔案
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:gravity="center">
<ImageView
android:id="@+id/iv_recycle"
android:layout_width="50dp"
android:layout_height="50dp"
android:background ="@drawable/img1"
/>
</RelativeLayout>
我只是單純的定義了一個ImageView,但是就像一開始說的任何有 android:background =""
屬性的控制元件都是可以的。
3)MainActivity 設定動畫
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends Activity {
ImageView iv;
AnimationDrawable imgRecycleAnimation;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv_recycle);
iv.setBackgroundResource(R.drawable.imganim);
imgRecycleAnimation = (AnimationDrawable) iv.getBackground();
imgRecycleAnimation.start();
}
}
停止的話 呼叫imgRecycleAnimation.stop();
即可。
三、效果圖
是的,因為懶,並沒有。