參考書(shū)籍:《Android開(kāi)發(fā)藝術(shù)探索》 任玉剛
如有錯(cuò)漏,請(qǐng)批評(píng)指出!
幀動(dòng)畫(huà)是順序播放一組預(yù)先定義好的圖片。不同于View動(dòng)畫(huà),系統(tǒng)提供了一個(gè)類(lèi) AnimationDrawable 來(lái)使用幀動(dòng)畫(huà),它的使用很簡(jiǎn)單,下面來(lái)看:
-
首先當(dāng)然是要準(zhǔn)備一組圖片素材:
圖片來(lái)源: https://blog.csdn.net/aminfo/article/details/7847761
這里我提供一個(gè)素材下載地址:https://pan.baidu.com/s/1655oSJV66fNZu-LJ9NiPBg 提取碼:un0d -
在 res/drawable 目錄下定義一個(gè) Drawable resource file,要定義幀動(dòng)畫(huà),我們需要用到 <drawable-list/> 標(biāo)簽
<?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/draw1" android:duration="200"/> <item android:drawable="@drawable/draw2" android:duration="200"/> <item android:drawable="@drawable/draw3" android:duration="200"/> <item android:drawable="@drawable/draw4" android:duration="200"/> <item android:drawable="@drawable/draw5" android:duration="200"/> <item android:drawable="@drawable/draw6" android:duration="200"/> </animation-list>這里涉及到 <drawable-list/> 標(biāo)簽的一個(gè)常用屬性:
- oneshot: 它的可選值是bool型,true 表示只播放一次,停在最后一幀,false 表示 無(wú)限循環(huán)播放(默認(rèn)為false)。
接下來(lái)就是添加每一幀的item列表,對(duì)應(yīng)兩個(gè)屬性:
- drawable: 素材圖片
- duration: 當(dāng)前幀播放時(shí)間
-
最后就是將我們定義的 AnimationDrawable 作為View的背景并通過(guò) Drawable 來(lái)播放動(dòng)畫(huà)
public class DrawableAnimActivity extends AppCompatActivity { @BindView(R.id.draw_anim) ImageView imgAnim; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_drawable_anim); ButterKnife.bind(this); imgAnim.setBackgroundResource(R.drawable.draw_anim); AnimationDrawable drawable = (AnimationDrawable)imgAnim.getBackground(); drawable.start(); } }

幀動(dòng)畫(huà)的使用很簡(jiǎn)單,但是比較容易引起 OOM,因此在使用時(shí)要盡量避免使用過(guò)多尺寸較大的圖片。
上一篇:Android學(xué)習(xí)筆記(七)| Android動(dòng)畫(huà)(上)—— View動(dòng)畫(huà)
下一篇:Android學(xué)習(xí)筆記(九)| Android動(dòng)畫(huà)(下)—— 屬性動(dòng)畫(huà)
