今天我使用Android Studio制作了一个简单的倒计时动画,算是练习一下属性动画的使用吧,先看一个效果吧,点击播放倒计时动画按钮后可以播放倒计时动画

实现方式:
第一步:使用Android Studio创建一个Android工程,并且在drawable文件夹下放入四张用于设置倒计时动画的图片

第二步:修改activity_main.xml中的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.fyt.animationdemo.MainActivity"android:orientation="vertical"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="播放倒计时动画"android:onClick="click"/><ImageViewandroid:id="@+id/iv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"/></LinearLayout>

第三步:修改MainActivity.java中的代码

package com.fyt.animationdemo;import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.ImageView;public class MainActivity extends Activity {private ImageView iv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获得布局文件上的ImageView控件iv = (ImageView) findViewById(R.id.iv);}//实现倒计时效果的按钮响应函数public void click(View view) {//创建播放倒计时动画的线程createAnimationThread();}//创建消息处理器Handler handler = new Handler(){//创建数组,保存图片资源的idfinal int[] arrayId = {0, R.drawable.three, R.drawable.two, R.drawable.one, R.drawable.start};//处理从主线程中发过来的消息@Overridepublic void handleMessage(Message msg) {//获得从子线程中发过来的数据int index = (int) msg.obj;//设置ImageView控件中显示的图片iv.setImageResource(arrayId[index]);//设置图片的缩放比例iv.setScaleX(0);iv.setScaleY(0);//设置x方向上的缩放动画ObjectAnimator oa1 = ObjectAnimator.ofFloat(iv, "scaleX", 0, 1);oa1.setDuration(500);//设置y方向上的缩放动画ObjectAnimator oa2 = ObjectAnimator.ofFloat(iv, "scaleY", 0, 1);oa2.setDuration(500);//创建动画师集合AnimatorSet set = new AnimatorSet();//设置所有的动画一起播放set.playTogether(oa1, oa2);//播放动画set.start();}};//创建播放倒计时动画的线程public void createAnimationThread() {//创建一个子线程Thread thread = new Thread(){//执行子线程@Overridepublic void run() {for (int i = 1; i <= 4; i++) {//创建消息对象Message message = handler.obtainMessage();//设置消息对象携带的数据message.obj = i;//将消息发送到主线程的消息处理器handler.sendMessage(message);try {//暂停500毫秒sleep(500);} catch (InterruptedException e) {e.printStackTrace();}}}};//启动子线程thread.start();}
}

最后一步:编译运行

制作一个简单的倒计时动画相关推荐

  1. 用计算机制作动画,如何使用制作工具制作一个简单的Flash动画-电脑自学网

    怎么制作Flash动画?通过Adobe Flash我们可以制作出非常有趣好看的动画,也可以制作一键简单的小动画,下面给大家介绍如何使用制作工具制作一个简单的Flash动画. 操作方法: 1.打开fla ...

  2. 制作一个简单的canvas动画

    制作一个简单的canvas动画 作者:旺仔 一上来先话不多说上代码,代码能看的懂得,ok,就当我下面所有的内容为废话,代码看的不太懂的,没关系我会一点一点让你懂,不过前提是你有一定的html+css+ ...

  3. ppt怎么制作一个简单的红绿灯动画?

    红绿灯在生活中是很常见的一种,我们有时做课件时需要用到红绿灯,那么该怎样做一个简单的红绿灯呢?下面就给大家介绍下利用ppt做一个建议的动画红绿灯,下面我们就来看看详细的教程 1.首先,我们需要做一个红 ...

  4. 电子脑PHP动画制作,PS简单制作一个动态的字体动画

    这篇教程是向PHP中文网的朋友分享PS简单制作一个动态的字体动画方法,教程制作出来的字体动画非常漂亮,难度不是很大,来看看吧 动态的文字比静态的文字更加吸引人的目光.如果在平时的海报中,在平时的促销活 ...

  5. pr如何跳到关键帧_PR教程 如何利用pr制作一个简单的动画

    Adobe Premiere Pro简称PR,是一款非常不错的视频制作编辑软件,如何如何利用pr制作一个简单的动画,这里小编为大家带来了pr动画制作教程--利用pr制作动画,一起来学习一下吧! Ado ...

  6. 数字信号 fft c源码_如何制作一个简单的人体动态识别微信小程序(附源码)

    知乎小白第一次写专栏,还请多指教. 先放成果. GitHub源码: lrioxh/HAR-applet-of-Wechat​github.com b站演示视频: 居然不需要服务器?!如何制作一个简单的 ...

  7. Python制作一个简单的抽奖软件(二)

    Python制作一个简单的抽奖软件(二) 认识QT 因为都对 QT和tkinter都没用过,之前简单使用tkinter后发现,界面调整不太好弄.然后度娘了之后,QT是强大GUI库之一,很多人都推荐它. ...

  8. PR教程:1分钟制作一个简约文字小动画视频开场片头

    PR教程:1分钟制作一个简约文字小动画视频开场片头 微信公众号:知音后期,一个简单直接分享干货的公众号!

  9. 使用 Flutter 制作一个简单的笑话生成器应用程序

    在本教程中,我将向您展示如何使用 Flutter 制作一个简单的笑话生成器应用程序 对于这个项目,我们将从 RESTful API 获取数据 API的链接: 随机笑话 对于这个项目,我不会关注应用程序 ...

最新文章

  1. 学习python好学吗-零基础学python难吗?好学吗?
  2. 第七章 综合练习 第四题
  3. SpringBoot中英文切换/国际化——java后端怎么用预置文本的内容替换web网页内容(Resource Bundle)
  4. SQL Server 2000从入门到精通3
  5. LeetCode 1409. 查询带键的排列(map模拟)
  6. TiDB 源码阅读系列文章(十八)tikv-client(上) 1
  7. 5岁自学python编程-python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹...
  8. maya拓扑插件_3D角色模型,Maya、Zbrush人头建模
  9. html注册页面代码实现案例,H5制作一个注册页面的代码实例
  10. arcgis中python计算面积的表达式_ArcGIS字段计算中的Python语法错误
  11. 售前笔记(三)——PPT方案
  12. 英特尔服务器主板型号,支持英特尔® Server Board S2600JF
  13. 数字逻辑综合工具-DC-04 ——怎样增加时序约束(Timing Constraints)
  14. 叉乘点乘混合运算公式_小学数学所有公式和顺口溜都在这里了,假期让孩子背熟!...
  15. 猫眼数据SQLITE保存格式
  16. 视频教程-从理论到实战:在园区网中部属IPv6-网络技术
  17. 利用MP实现分页查询
  18. 浅析深究什么是SOA?
  19. 再见了新阳丽舍,再见了新雅阁301
  20. 使用容器方式进行编译的经验和技巧小结

热门文章

  1. 【flutter】tabbar文字抖动处理方案
  2. Swift表格Lxr
  3. Linux磁盘术语描述
  4. with open新创建的文件在哪找_Python 基本功: 4. 读写文件
  5. 嵌入式微处理器的体系结构
  6. android 自定义图片合集(自定义控件)
  7. 计算机主机声音怎么办,电脑机箱声音大怎么办?电脑机箱声音大解决方法
  8. 学习日记5-C语言函数的应用
  9. windows 离线安装nessus
  10. c语言字母伽马值,液晶屏里面伽马值是做什么用的?