Frame Animation 帧动画
来源:互联网 发布:这个驸马有淘宝gl乐文 编辑:程序博客网 时间:2024/05/07 07:31
Frame Animation (又叫Drawable Animation),类似于电影的播放,是一帧一帧的播放不同的图像序列!
AnimationDrawable 是帧动画的核心实现类!
相比较在代码中庸AnimationDrawable实现帧动画,用xml的方式更加方便且易于维护和修改!
- 在res/drawable/路径下面定义xml文件。定义构成帧动画的不同图像的顺序和持续时间。 animation-list 作为xml的根元素,item表示每个帧的图像资源和持续时间
<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true" > <item android:duration="300" android:drawable="@drawable/krystal01"> </item> <item android:duration="300" android:drawable="@drawable/krystal02"> </item> <item android:duration="300" android:drawable="@drawable/krystal03"> </item> <item android:duration="300" android:drawable="@drawable/krystal04"> </item></animation-list>
- 在代码中为View设置并启动帧动画
package com.example.frameanimation;import android.app.Activity;import android.app.ActionBar;import android.app.Fragment;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.MotionEvent;import android.view.View;import android.view.ViewGroup;import android.view.animation.Animation;import android.widget.ImageView;import android.os.Build;public class MainActivity extends Activity { private ImageView imageView; // 帧动画 private AnimationDrawable animationDrawable; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = (ImageView) findViewById(R.id.imageView1); // 将帧动画设置为imageView的背景,然后启动动画 imageView.setBackgroundResource(R.drawable.rocket_thrust); animationDrawable = (AnimationDrawable) imageView.getBackground(); } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { // 帧动画的 start()方法,不能再onCreate()方法中执行,因为AnimationDrawable还没有连接到Window // 如果你想要立即执行动画,你可以在activity的 onWindowFocusChanged() 调用start()方法,当window获得焦点就会执行 animationDrawable.start(); return true; } return super.onTouchEvent(event); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
- 运行结果
0 0
- Frame Animation 帧动画
- Frame Animation 帧动画
- 【Frame Animation 逐帧动画】
- 帧动画,Android中的动画 --Frame Animation
- Android动画Frame Animation 帧动画
- Android动画-Frame Animation(帧动画)
- Android 动画--帧动画(Frame Animation)
- Animation动画(二)---- Frame 帧动画
- Android-Animation动画之Frame Animation帧动画
- Android动画(View Animation之Frame Animation(逐帧动画))
- Android之-----Frame帧动画(Animation)
- Frame Animation(逐帧动画)
- Android 帧动画(Frame Animation)
- Android动画--Frame Animation
- Android[动画] Frame Animation
- android动画-Frame Animation
- android动画-Frame Animation
- 帧动画Frame-by-Frame Animation的使用方法
- 怎样每天保持饱满的精神状态?
- 听说京东凶残的关了拍拍。。。
- 杭电oj2021
- java线程同步——条件对象+synchronized 关键字
- 如何解决电脑横屏问题
- Frame Animation 帧动画
- 【ZYNQ-7000开发之五】PL和PS通过BRAM交互共享数据
- Android之Fragment学习(四)
- 所有Android 开发者都要知道的开发常识
- uva 11149 - Power of Matrix 【倍增 + 矩阵快速幂】
- poj 2976 Dropping tests(最大化平均值)
- 树莓派GPIO引脚
- 【软工文档】机房收费系统之详细设计说明书
- 【设计模式】——总览