1.布局文件

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:background="@drawable/rocket_bg"

>

android:id="@+id/iv_num"

android:visibility="gone"

android:layout_height="50dp"

android:layout_width="80dp"

android:layout_gravity="center"

android:background="@drawable/num_anim"

/>

android:onClick="load"

android:layout_width="50dp"

android:layout_height="30dp"

android:layout_gravity="right"

android:text="装载"

android:layout_marginTop="150px"

android:background="@drawable/btn_normal"

>

android:onClick="fire"

android:layout_width="50dp"

android:layout_height="30dp"

android:layout_gravity="right"

android:text="点火"

android:layout_marginTop="30px"

android:background="@drawable/btn_normal"

>

android:onClick="send"

android:layout_width="50dp"

android:layout_height="30dp"

android:layout_gravity="right"

android:text="发射"

android:layout_marginTop="30px"

android:background="@drawable/btn_normal"

>

android:visibility="gone"

android:id="@+id/iv_01"

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:layout_gravity="center_horizontal"

android:layout_marginTop="-30px"

android:class="lazyload" src="https://img-blog.csdnimg.cn/2022010707591537684.png" data-original="@drawable/rocket2"

android:background="@drawable/fire_anim"

/>

3.帧动画xml文件

3.1 num_main.xml

android:oneshot="true"

>

android:drawable="@drawable/number5" android:duration="1000"

>

android:drawable="@drawable/number4" android:duration="1000"

>

android:drawable="@drawable/number3" android:duration="1000"

>

android:drawable="@drawable/number2" android:duration="1000"

>

android:drawable="@drawable/number1" android:duration="1000"

>

3.2 fire_main.xml

android:oneshot="false"

>

android:drawable="@drawable/rocket1" android:duration="100"

>

android:drawable="@drawable/rocket2" android:duration="100"

>

android:drawable="@drawable/rocket3" android:duration="100"

>

android:drawable="@drawable/rocket4" android:duration="100"

>

android:drawable="@drawable/rocket5" android:duration="100"

>

android:drawable="@drawable/rocket6" android:duration="100"

>

2.MainActivity.java

package com.example.day016_ex01;

import android.os.AsyncTask;

import android.os.Bundle;

import android.animation.AnimatorSet;

import android.animation.ObjectAnimator;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.content.AsyncTaskLoader;

import android.graphics.drawable.AnimationDrawable;

import android.view.Menu;

import android.view.View;

import android.widget.ImageView;

import android.widget.Toast;

public class MainActivity extends Activity {

static int load=0,fire=1,send=2;

//记录倒计时的时间

int time=0;

ImageView iv_fire,iv_num;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

iv_fire=(ImageView) findViewById(R.id.iv_01);

iv_num=(ImageView) findViewById(R.id.iv_num);

}

public void load(View v){

//装载

iv_fire.setVisibility(View.VISIBLE);

load++;

}

public void fire(View v){

AnimationDrawable num=(AnimationDrawable) iv_num.getBackground();

if(load==fire){

iv_num.setVisibility(View.VISIBLE);

//点火倒计时

num.start();

int count=num.getNumberOfFrames();

for(int i=0;i

time+=num.getDuration(i);

}

new MyTask().execute();

}else{

Toast.makeText(this,"您还没有加载火箭呢!",0).show();

}

}

@SuppressLint("NewApi")

public void send(View v){

if(load==1&&fire==send){

ObjectAnimator tranX=ObjectAnimator.ofFloat

(iv_fire,"translationY",0,-400);

tranX.setDuration(2000);

ObjectAnimator scaleX=ObjectAnimator.ofFloat

(iv_fire,"scaleX",1.0f,0.5f);

ObjectAnimator scaleY=ObjectAnimator.ofFloat

(iv_fire,"scaleY",1.0f,0.5f);

scaleX.setDuration(2000);

scaleY.setDuration(2000);

AnimatorSet set=new AnimatorSet();

set.playTogether(tranX,scaleX,scaleY);

set.start();

}else{

Toast.makeText(this,"您加载火箭了吗?点火了吗?", 0).show();

}

}

private class MyTask extends AsyncTask{

@Override

protected Void doInBackground(Void... params) {

try {

Thread.sleep(time);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

@Override

protected void onPostExecute(Void result) {

// TODO Auto-generated method stub

super.onPostExecute(result);

iv_num.setVisibility(View.GONE);

fire++;

AnimationDrawable fire=(AnimationDrawable)

iv_fire.getBackground();

//点火启动

fire.start();

}

}

}

android 火箭动画,利用动画模拟火箭发射场景相关推荐

  1. Android开发之利用动画做出Activity悬浮滑动效果

    老套路看效果: 核心代码就几行: package com.example.firstapp;import android.os.Bundle; import android.view.View; im ...

  2. android中小火箭动态喷射动画的简单实现

    在实现android火箭喷射时,比较难的一点就是既让火箭有火苗喷射,又要使火箭加速上升,所以感觉实现起来有些麻烦,但是发现了一种新的方法,可以让动画再次动(当然由于直接给动画加动画我没试过,所以不知道 ...

  3. 用css3做一个模拟火箭飞行的简单动画。

    用css3做一个模拟火箭飞行的简单动画,图片我特意上传到了图床,你也可以试试. 效果大概是这样: 需要的知识点: 知道css的transform,transition,animation属性和定义动画 ...

  4. android listview下拉动画效果,Android开发中利用ListView实现一个渐变式的下拉刷新动画...

    Android开发中利用ListView实现一个渐变式的下拉刷新动画 发布时间:2020-11-23 16:50:31 来源:亿速云 阅读:80 作者:Leah 本篇文章给大家分享的是有关Androi ...

  5. android 应用切换动画,怎么在Android应用中利用Activity对动画进行切换

    怎么在Android应用中利用Activity对动画进行切换 发布时间:2020-11-27 16:19:53 来源:亿速云 阅读:107 作者:Leah 今天就跟大家聊聊有关怎么在Android应用 ...

  6. android 矢量粒子动画,iOS CAEmitterLayer实现粒子发射动画效果

    iOS实现粒子发射动画效果图 动画效果用 CAEmitterLayer 实现.CAEmitterLayer 显示粒子发射动画,具体的粒子由 CAEmitterCell 封装.代码示例是展示 CAEmi ...

  7. 定时器小案例:模拟火箭发射按钮

    模拟火箭发射时的按钮状态:数字从10减少到0,在数字变为0之前按钮均为不可点击状态,在变为0后,按钮变为可点击状态. 参考代码: <!DOCTYPE html> <html lang ...

  8. 纯css3火箭穿越太空动画js特效

    下载地址 纯css3实现的火箭升空特效,CSS火箭飞跃太空动画特效 dd:

  9. android开发上下翻转动画,怎么在android中利用FlipAnimation实现一个3D垂直翻转动画...

    怎么在android中利用FlipAnimation实现一个3D垂直翻转动画 发布时间:2021-02-20 17:08:30 来源:亿速云 阅读:122 作者:Leah 这期内容当中小编将会给大家带 ...

最新文章

  1. 1.6 matlab矩阵的表示
  2. 【C语言】C语言实现面向对象编程之多态
  3. 【C++鼠标键盘操作】自动下载CSDN博客文章到PDF
  4. Oracle版本号的含义
  5. 简易中控紫猫插件版(3)压缩包使用说明
  6. 【LeetCode 986】 区间列表的交集(区间交集)
  7. MySQL buffer pool里的三种链表和三种page
  8. CompletableFuture详解~创建实例
  9. 建站零基础入门:手把手教你如何自助建站
  10. python三种基本数据类型_Python的三种基本数据类型
  11. mysql 5.6 密码_Mysql5.6 忘记root密码的解决办法
  12. 16.Java中的String详解
  13. 【Spring第六篇】注解:Annotation
  14. python版本控制git_实验一:Git代码版本管理
  15. Atitit 上传进度的实现与原理 目录 1.1. 前端 1 1.2. 读取进度 1 1.3. 后端 定时注入进度 1 1.1.前端                         wind
  16. kali工具 -- setoolkit(克隆网站及利用)
  17. mysql pxc介绍_MySQL高可用——PXC简介
  18. Flowable工作流之查询历史流程信息
  19. Silver Efex Pro 2 for Mac(黑白处理调试滤镜)
  20. 《高级职称证书挂靠价格一览表》

热门文章

  1. JZOJ 3455. 【NOIP2013模拟联考3】库特的向量(code)
  2. [习题]如何触发 GridView 身体里面的「子控件」的事件 (ASP.NET案例精编 / 清华大学出版社 Ch.10/11两章的补充)...
  3. java 8 foreach获取索引
  4. vue-router linkActiveClass问题
  5. VS2017 控件添加关联变量
  6. R: 绘图 barplot
  7. Jenkins环境拓扑及部署流程
  8. 强制推送代码到远程仓库
  9. 生命太短暂,我没时间讨厌你
  10. 金笛MODEM池 (RS232串口和RJ45网口)