Android 逐帧动画(Frame)
生活随笔
收集整理的這篇文章主要介紹了
Android 逐帧动画(Frame)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Android 逐幀動畫(Frame)? 很好理解就是將多張圖片放到一個容器里面通過控制這些圖片一幀一張圖片從而形成動畫
使用的使用通過AnimationDrawable 加載放好的圖片 然后通過調(diào)用start 和stop 開啟和暫停動畫
第一種方法:通過xml 來實現(xiàn)
首先需要在animation-list.xml 來存放圖片
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="false"><itemandroid:drawable="@drawable/girl_1"android:duration="300" /><itemandroid:drawable="@drawable/girl_2"android:duration="300" /><itemandroid:drawable="@drawable/girl_3"android:duration="300" /><itemandroid:drawable="@drawable/girl_4"android:duration="300" /><itemandroid:drawable="@drawable/girl_5"android:duration="300" /><itemandroid:drawable="@drawable/girl_6"android:duration="300" /><itemandroid:drawable="@drawable/girl_7"android:duration="300" /><itemandroid:drawable="@drawable/girl_8"android:duration="300" /><itemandroid:drawable="@drawable/girl_9"android:duration="300" /><itemandroid:drawable="@drawable/girl_10"android:duration="300" /><itemandroid:drawable="@drawable/girl_11"android:duration="300" />
</animation-list>
注意:oneshot 設(shè)置為false表示動畫循環(huán)播放,設(shè)置為true 表示畫只播放一次停止在最后一幀上。
java 代碼 包含xml 實現(xiàn)和java 代碼實現(xiàn)動畫
public class FrameActivity extends AppCompatActivity {private Button startBtn; // 開始動畫按鈕private Button stopBtn; // 停止動畫按鈕private ImageView imageView, image; // 顯示圖片private AnimationDrawable anim, animationDrawable;@SuppressLint("ResourceType")@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.frame_activity_layout);// 實例化控件startBtn = findViewById(R.id.start);stopBtn = findViewById(R.id.stop);imageView = findViewById(R.id.image);image = findViewById(R.id.img);anim = new AnimationDrawable();for (int i = 1; i < 6; i++) {int id = getResources().getIdentifier("img" + i, "drawable", getPackageName());Drawable drawable = getResources().getDrawable(id);anim.addFrame(drawable, 500);imageView.setImageDrawable(anim);}// 指定動畫的幀的列表image.setBackgroundResource(R.drawable.boy_and_girl);// AnimationDrawable--與逐幀動畫相關(guān)的DrawableanimationDrawable = (AnimationDrawable) image.getBackground();startBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {// 開始動畫anim.start();animationDrawable.start();}});stopBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {// 暫停動畫anim.stop();animationDrawable.stop();}});}
}
這樣就實現(xiàn)了上面動畫的效果很簡單,這里回顧下,之前寫過這個demo 這里給出demo 地址
demo 地址如果有不清楚的地方可以點擊查看。
?
?
總結(jié)
以上是生活随笔為你收集整理的Android 逐帧动画(Frame)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一根标准金条有多重?一根金条值多少钱
- 下一篇: qq个性签名友情伤感