ObjectAnimator属性动画应用demo

感谢慕课网--eclipse_xu

布局文件:activity_main.xml

 1 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     tools:context="com.example.animationapp.MainActivity" >
 6 
 7     <ImageView
 8         android:id="@+id/im0"
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         android:paddingLeft="3dp"
12         android:paddingTop="3dp"
13         android:src="@drawable/b" />
14 
15     <ImageView
16         android:id="@+id/im1"
17         android:layout_width="wrap_content"
18         android:layout_height="wrap_content"
19         android:paddingLeft="3dp"
20         android:paddingTop="3dp"
21         android:src="@drawable/c" />
22 
23     <ImageView
24         android:id="@+id/im2"
25         android:layout_width="wrap_content"
26         android:layout_height="wrap_content"
27         android:paddingLeft="3dp"
28         android:paddingTop="3dp"
29         android:src="@drawable/d" />
30 
31     <ImageView
32         android:id="@+id/im3"
33         android:layout_width="wrap_content"
34         android:layout_height="wrap_content"
35         android:paddingLeft="3dp"
36         android:paddingTop="3dp"
37         android:src="@drawable/e" />
38 
39     <ImageView
40         android:id="@+id/im4"
41         android:layout_width="wrap_content"
42         android:layout_height="wrap_content"
43         android:paddingLeft="3dp"
44         android:paddingTop="3dp"
45         android:src="@drawable/f" />
46 
47     <ImageView
48         android:id="@+id/im5"
49         android:layout_width="wrap_content"
50         android:layout_height="wrap_content"
51         android:paddingLeft="3dp"
52         android:paddingTop="3dp"
53         android:src="@drawable/g" />
54 
55     <ImageView
56         android:id="@+id/im6"
57         android:layout_width="wrap_content"
58         android:layout_height="wrap_content"
59         android:paddingLeft="3dp"
60         android:paddingTop="3dp"
61         android:src="@drawable/h" />
62 
63     <ImageView
64         android:id="@+id/im7"
65         android:layout_width="wrap_content"
66         android:layout_height="wrap_content"
67         android:src="@drawable/a" />
68 
69 </FrameLayout>
View Code

图片资源

MainActivity.java

 1 package com.example.animationapp;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import android.support.v7.app.ActionBarActivity;
 7 import android.animation.ObjectAnimator;
 8 import android.os.Bundle;
 9 import android.view.Menu;
10 import android.view.MenuItem;
11 import android.view.View;
12 import android.view.View.OnClickListener;
13 import android.view.animation.BounceInterpolator;
14 import android.widget.ImageView;
15 import android.widget.Toast;
16 
17 public class MainActivity extends ActionBarActivity implements OnClickListener {
18 
19     private int[] res = {R.id.im0, R.id.im1,R.id.im2,
20             R.id.im3,R.id.im4,R.id.im5,R.id.im6,R.id.im7}; 
21     
22     private List<ImageView>  list = new ArrayList<ImageView>(); 
23     
24     private boolean flag = true;
25     
26     @Override
27     protected void onCreate(Bundle savedInstanceState) {
28         super.onCreate(savedInstanceState);
29         setContentView(R.layout.activity_main);
30         
31         initView();
32     }
33 
34     private void initView() {
35         
36         for(int i = 0; i < res.length; i++){
37             ImageView im = (ImageView) findViewById(res[i]);
38             im.setOnClickListener(this);
39             list.add(im);
40         }
41     }
42 
43     @Override
44     public void onClick(View v) {
45         switch(v.getId()){
46         //im7最后布局,叠加在最上面
47         case R.id.im7:{
48             
49             if(flag){
50                 startAnimation();
51                 flag = false;
52             }else{
53                 closeAnimation();
54                 flag = true;
55             }
56             break;
57         }
58 
59         default:
60             Toast.makeText(MainActivity.this, v.getId()+"OK", Toast.LENGTH_SHORT).show();
61             break;
62         }
63     }
64 
65     private void closeAnimation() {
66         for(int i = 0 ;i<res.length-1; i++){
67             ObjectAnimator oa = ObjectAnimator.ofFloat(list.get(i),
68                     "translationY",i*200F, 0F );
69             oa.setDuration(100);    
70             //oa.setStartDelay(50*i);
71             oa.start();
72         }
73     }
74 
75     private void startAnimation() {
76         //此处只需要弹出其余7个图标,最上边的图标im7不动
77         for(int i = 0 ;i<res.length-1; i++){
78             //属性动画操作类
79             ObjectAnimator oa = ObjectAnimator.ofFloat(list.get(i),
80                     "translationY", 0F, i*200F);
81             oa.setDuration(200);
82             //oa.setInterpolator(new BounceInterpolator());
83             //oa.setStartDelay(200*i);
84             oa.start();
85         }
86     }
87     
88 }
View Code

 

转载于:https://www.cnblogs.com/gongxing/p/4887303.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

今晚在线解读|2021-2022 .NET 中国开发者生态调查报告

点击蓝字关注我们作为一名 .NETer&#xff0c;你就职于怎样规模的公司&#xff1f;所属什么行业领域&#xff1f;平时使用哪些快速开发框架&#xff1f;产品方向及收费模式又是怎样的&#xff1f; 作为一名开发者&#xff0c;你从业已有几年&#xff1f;平时加班多吗&#xff1…

实现网站验证码切换功能

实现网站验证码切换功能 一、样例 样例1、 样例2、 二、实现原理 三、实现代码 com.fry.servlet.VerifyCodeServlet 1 package com.fry.servlet;2 3 import javax.imageio.ImageIO;4 import javax.servlet.ServletException;5 import javax.servlet.annotation.WebServlet;6 im…

校园春色关不住,怎奈何唯有花枝俏,不见赏花人?

受新冠肺炎疫情的影响&#xff0c;直至今天&#xff08;2020年4月16日&#xff09;&#xff0c;各大学依然是人去楼空&#xff0c;我的大学也不例外。春天来了&#xff0c;本应是校园春色关不住&#xff0c;却怎奈何唯有花枝俏&#xff0c;不见赏花人&#xff1f;这也正应了那句…

CSDN是如何让我副业月入过万的?

始 我跟 CSDN 的缘分要从 2011 年说起&#xff0c;当时我正上高二&#xff0c;当时好像是在搞鼓 MFC。当时家里有了第一台电脑&#xff0c;我也再也不用去黑网吧去敲代码了&#xff0c;在家搜索资料的时候出现在我眼帘之中&#xff0c;并且对我有帮助的基本上都是 CSDN 上的内…

MSMQ消息广播

安装配置MSMQ消息广播&#xff0c;并验证是否可以发送广播消息&#xff0c;过程实录。1. 安装MSMQ with broadcasting support选择安装“消息队列”&#xff0c;并在子选项中选择“多播支持”一起安装。2. 注册表修改MulticastBindIPIf Message Queueing found multiple IP add…

【操作系统】操作系统不可怕,重装系统不求人,因为我们是GISer!

GISer不仅可以用意念操作软件,而且可以轻松自如重装系统!今天我们分享用U制作启动盘,并安装Win7系统。 一、系统安装必备 优盘(现在的U盘内存都比较大,大于4G即可)电脑店操作系统(Win7 64位专业版)二、安装过程 1、系统启动盘制作 下载电脑店优盘制作软件,安装,运行…

看聊天记录都学不会C语言?太菜了吧》(16)我一直以为校花很漂亮,直到我叫了她一声...

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖…

小米空调来了,意外的是还一起来了一个马桶盖

8月10日下午&#xff0c;小米旗下生态链企业智米召开了新品发布会&#xff0c;发布会上正式推出了智米全直流变频空调和智米智能马桶盖。 智米全直流变频空调采用了纯白配色&#xff0c;外观设计较为简洁&#xff0c;空调底部有一个圆形的显示屏&#xff0c;可显示温度、电量统…

聊一聊 CLR 中的 typedef 是怎么玩的

一&#xff1a;背景 在 CLR 源码中&#xff0c;我们会看到很多关于 typedef 的定义&#xff0c;比如下面这样&#xff1a;// Callback function type used by DacStreamManager to coordinate // amount of available memory between multiple streamable data // structures (…

JAVA如何正确处理Unicode字符

最近在开发输入法程序时遇到一个小问题&#xff0c;就是删除一个emoji时&#xff0c;不能一次删干净&#xff0c;需要执行两次操作才可以。Intuitively&#xff0c;这肯定是java操作unicode字符的问题&#xff0c;于是找了JAVA官方文档参考一下&#xff0c;解决了这个问题&…

透过面试题,洞察Hbase 核心知识点

LSM 算法 HFile 索引 &#xff0c;二级索引 hbase的问题 1.hbase怎么预分区&#xff1f; 2.hbase怎么给web前台提供接口来访问&#xff1f; 3.htable API有没有线程安全问题&#xff0c;在程序中是单例还是多例&#xff1f; 4.我们的hbase大概在公司业务中&#xff08;主要…

《看聊天记录都学不会Python到游戏实战?太菜了吧》(4)小白不知道这个知识点将会错漏百出

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

【Pix4d精品教程】打开Pix4DMapper时提示Pix4DMapper.exe已停止工作的完全解决办法

本文为作者在使用软件时,打开Pix4DMapper时提示Pix4DMapper.exe已停止工作的完全解决办法,亲测可用! 目录 一、问题错误提示 二、问题分析及解决方法 一、问题错误提示 打开Pix4DMapper时,提示Pix4DMapper.exe已停止工作,错误提示如下: 展开问题详细信息:

Framework Design Studio 发布了

介绍 Krzysztof Cwalina 和他的伙计们最近在开发一个工具&#xff0c;可以帮助框架设计者更容易地进行设计、复查和维护高度易用的API&#xff0c;你可一定要看看Framework Design Studio&#xff08;FDS&#xff09;。 可以在此处下载FDS和它的快速入门文档。 目前这个工具主要…

微服务 配置中心 Nacos .Net 5

本文来自投稿&#xff1a;蓝创精英团队基于Nacos来一篇关于微服务的配置中心方案Demo。Nacos是开源的&#xff0c;同时&#xff0c;阿里云也有收费的关于它的服务&#xff0c;公司刚好是依托阿里云的服务体系&#xff0c;所以&#xff0c;使用它作为配置中心的可能性还是很大的…

看聊天记录都学不会C语言?太菜了吧》(17)5分钟搞懂指针与多重指针

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖…

如何保护你的linux操作系统

导读在现在这个世道中&#xff0c;Linux操作系统的安全是十分重要的。但是&#xff0c;你得知道怎么干。一个简单反恶意程序软件是远远不够的&#xff0c;你需要采取其它措施来协同工作。那么试试下面这些手段吧。 使用SELinuxSELinux是用来对Linux进行安全加固的&#xff0c;有…

无人职守安装的设计与部署

无人职守安装的设计与部署 (2009-2-19) 安装前需要生成一个应答文件&#xff0c;此时需要一个光盘中的工具。首先&#xff0c;将WINDOWN2003光盘载入CD&#xff0c;---单击退出。接下来打开光盘&#xff0c; 选择SUPPORT—并打开&#xff0c; --TOOLS –并打开 -----…

干掉RedisHelper,请这样用分布式缓存

前言我们在项目中使用Redis时通常是写一个单例模式的RedisHelper静态类&#xff0c;暴露一些常用的Get、Set等操作&#xff0c;在需要使用地方直接RedisHelper.StringGet(xx,xx)就可以了&#xff0c;这样虽然简单粗暴地满足我们对Redis的所有操作需要&#xff0c;但是这在Asp.N…

《看聊天记录都学不会C#?太菜了吧》(2)C#那么简单我为何之前还学C语言?

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…