该程序只是简单的检测到触摸屏幕事件,当用户触屏时,程序将会在触摸到”爆炸”.


package com.test.frameanimation;import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.AnimationDrawable;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;import java.lang.reflect.Field;/*** 定义爆炸的逐帧动画*/
public class BlastActivity extends Activity {private MyView mMyView;private AnimationDrawable anim;private MediaPlayer mPlayer;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_blast);//使用 FrameLayout 布局管理器,它允许组件控制自己的位置FrameLayout frame = new FrameLayout(this);setContentView(frame);//设置背景图frame.setBackgroundResource(R.drawable.back);//加载音效mPlayer = MediaPlayer.create(this, R.raw.bomb);mMyView = new MyView(this);//设置myview 显示动画mMyView.setBackgroundResource(R.anim.blast);//设置MyView 默认是隐藏mMyView.setVisibility(View.INVISIBLE);//获取动画对象anim = (AnimationDrawable) mMyView.getBackground();frame.addView(mMyView);frame.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {//处理按下事件if (event.getAction() == MotionEvent.ACTION_DOWN) {// 先停止动画播放anim.stop();float x = event.getX();float y = event.getY();//控制 MyView的显示位置mMyView.setLocation((int) y - 40, (int) x - 20);mMyView.setVisibility(View.VISIBLE);anim.start();mPlayer.start();}return false;}});}class MyView extends ImageView {public MyView(Context context) {super(context);}//定义一个方法,用于控制myView 组件的位置public void setLocation(int top, int left) {this.setFrame(left, top, left + 40, top + 40); //TODO}@Overrideprotected void onDraw(Canvas canvas) {try {Field field = AnimationDrawable.class.getDeclaredField("mCurFrame");field.setAccessible(true);//获取anim动画的当前帧int curFrame = field.getInt(anim);//如果是最后一帧if (curFrame==anim.getNumberOfFrames()-1){setVisibility(View.INVISIBLE);}} catch (Exception e) {e.printStackTrace();}}}
}

AnimationDrawable 帧动画 爆炸特效相关推荐

  1. Android自定义控件:动画类---逐帧动画AnimationDrawable

    1:概述 Android动画包括View Animation(视图动画)和Property Animator(属性动画),而View Animation包括Tween Animation(补间动画)和 ...

  2. Android 帧动画,加载动画,AnimationDrawable,仿京东加载动画

    1.创建drawable文件ring_animation.xml <?xml version="1.0" encoding="utf-8"?> &l ...

  3. 安卓案例:利用帧动画实现游戏特效

    文章目录 一.动画概念 二.逐帧动画 三.运行效果 四.涉及知识点 五.游戏特效案例实现思路 六.实现步骤 1.创建安卓应用[GameSpecialEffect] 2.将逐帧动画素材拷贝到drawab ...

  4. Android App开发动画特效中帧动画和电影淡入淡出动画的讲解及实战(附源码和演示视频 简单易懂)

    需要图片集和源码请点赞关注收藏后评论区留言~~~ 一.帧动画 Android的动画分为三类,帧动画,补间动画和属性动画.其中帧动画是实现原理最简单的一种,跟现实生活中的电影胶卷类似,都是在短时间内连续 ...

  5. 逐帧动画 AnimationDrawable

    逐帧动画是通过android中的android.graphics.drawable.AnimationDrawable类来实现的 在该类中保存了帧序列以及显示的时间,为了简化动画的创建OPhone提供 ...

  6. 3dmax:3dmax经典案例详细步骤图文教程之粒子阵列粒子系统制作星球爆炸特效动画效果

    3dmax:3dmax经典案例详细步骤图文教程之粒子阵列粒子系统制作星球爆炸特效动画效果 目录 3dmax经典案例详细步骤图文教程之粒子阵列粒子系统制作星球爆炸特效动画效果

  7. android 粒子爆炸特效

    先上图: 这是一个高级UI特效,是个动画. 完成这个动画只要3步: 1.控件完成振动效果动画. 2.控件振动动画完成后消失,然后将控件转换成Bitmap. 3.Bitmap完成粒子爆炸特效. 其实完成 ...

  8. 帧动画和补间动画看这篇足够了

    帧动画和补间动画看这篇足够了 本文原创,转载请注明出处. 欢迎关注我的 简书 ,关注我的专题 Android Class 我会长期坚持为大家收录简书上高质量的 Android 相关博文. 写在前面: ...

  9. android 帧动画张数限制,Android帧动画和补间动画看这篇足够了

    原标题:Android帧动画和补间动画看这篇足够了 写在前面 为了使用户的交互更加流畅自然,动画也就成为了一个应用中必不可少的元素之一.在 Android 中常用的动画分类无外乎三种,最早的帧动画.补 ...

最新文章

  1. adf盖怎么打开_打印机墨盒怎么更换,看我这篇文章就够了
  2. 在docker中构建普通java程序_Docker入门-构建第一个Java程序
  3. 【CoppeliaSim】远程 API 之 Python 控制,对比 V-rep 有些不同
  4. redis和mysql双写一致_缓存与库双写一致,这种“老大难”怎么给它制服?
  5. ubuntu16安装pymesh2的方法
  6. Django:我是怎么做到使用django动态定义表单(form)的 .
  7. Android查看CPU和GPU使用率
  8. 垃圾回收中的finalize方法
  9. Java测试-RestTemplate-@requestBody
  10. 截图贴图取色Snipaste
  11. Android带动画进度条简单实现
  12. 【可见光室内定位】(三)基于图像传感器CMOS的可见光室内定位技术
  13. axure原型怎么让文字自动换行_蓝湖 for Mac(自动切图sketch插件)
  14. NFS笔记(二)NFS服务器配置实例
  15. 树莓派 使用3.5耳机口输出音频
  16. PS 2019 Mac版 自学入门系列(三)——插入对象
  17. 18天精读掌握《费曼物理学讲义卷一》 第6天 2019.6.19
  18. 英语口语268之每日十句口语
  19. 2003沈阳航空学院计算机分数线,沈阳航空航天大学
  20. 【HC32L110】国产单片机HC32L110C6UA,基础点灯流水灯

热门文章

  1. 搭建easy-mock数据模拟服务器
  2. python ppt 图片_利用Python将PPT转换为图片并合成长图
  3. Xyz贴图ZWrap操作
  4. jQuery Cookbook中文版
  5. [车联网安全自学篇] Android安全之移动安全测试指南「安全测试和SDLC」
  6. @PersistenceContext和@Autowired在EntityManager上应用的不同
  7. Golang pprof简介
  8. 安装ROS使用sudo rosdep init 报错ERROR: cannot download default sources list from:
  9. npm查看一个包的版本信息
  10. python数组列表添加一行一列np.rowstack()np.column_stack()