教您如何讓Gif動畫動起來(表情)
阿新 • • 發佈:2019-01-27
本文將為講解Android中Gif圖片播放的教程。Android 中是不支援直接使用Gif 圖片關聯播放幀動畫,如下動畫在Android 中是無法播放的,我們將教會您使用有效方法讓Gif圖片在Android下動起來。
使用軟體:easygifanimator
<?xml version="1.0" encoding="UTF-8"?> <animation-list android:oneshot="false" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:duration="150" android:drawable="@drawable/xiu0" /> <item android:duration="150" android:drawable="@drawable/xiu1" /> <item android:duration="150" android:drawable="@drawable/xiu2" /> <item android:duration="150" android:drawable="@drawable/xiu3" /> </animation-list>
對應的item 為順序的圖片從開始到結束,duration為每張逐幀播放間隔,oneshot 為false 代表迴圈播放,設定為true 即播放一次即停止。
對應Activity 程式碼如下編寫:
import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; public class animActivity extends Activity implements OnClickListener { ImageView iv = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); iv = (ImageView) findViewById(R.id.ImageView01); iv.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub AnimationDrawable anim = null; Object ob = iv.getBackground(); anim = (AnimationDrawable) ob; anim.stop(); anim.start(); } }
使用AnimationDrawable 物件獲得圖片的圖片,然後指定這個AnimationDrawable 開始播放動畫
Tip:使用此方法不會預設播放,必須要有事件觸發才可播放動畫,如上面的通過點選監聽觸發動畫的播放
那麼如何使用圖片自動播放呢?我們可以聯想一下,ProgressBar 是不是預設的時候就會轉,那就是那個圓形的進度條,是的。我們可以對它進行改造合它也可以自動播放,在Values 檔案下新建一個styles 檔案,編寫如下程式碼 :
上面樣式檔案自Widget.ProgressBar.Large 為其設定動畫檔案,我們在XML中就可以通過設定它的樣式使其為我們工作<?xml version="1.0" encoding="UTF-8"?> <resources> <style name="animStyle" parent="@android:style/Widget.ProgressBar.Large"> <item name="android:indeterminateDrawable">@anim/test</item> </style> </resources>
<ProgressBar android:id="@+id/ProgressBar01" style="@style/animStyle"
android:layout_width="128px" android:layout_height="128px"></ProgressBar>