感谢慕课网--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

ObjectAnimator属性动画应用demo相关推荐

  1. 走进绚烂多彩的属性动画-Property Animation(上篇)

    转载请注明出处(万分感谢!): http://blog.csdn.net/javazejian/article/details/52273733 出自[zejian的博客] 关联文章: 走进绚烂多彩的 ...

  2. Android VectorDrawable 矢量图+属性动画 使用总结

    代码已经同步到GitHub 然后看一下效果图: 前两个图标是让android的组件使用VectorDrawable 后面的是动画效果 后面会详细介绍. 什么是VectorDrawable Vector ...

  3. Android 属性动画(Property Animation) ObjectAnimator的介绍

    先说下属性动画与视图动画的区别: 视图动画系统仅提供为 View 对象添加动画效果的功能,因此,如果您想为非 对象添加动画效果,则必须实现自己的代码才能做到.视图动画系统也存在一些限制,因为它仅公开 ...

  4. Android属性动画 ObjectAnimator

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/118709616 本文出自[赵彦军的博客] 文章目录 ObjectAnimator ...

  5. (转)Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法

    版权声明:本文出自郭霖的博客,转载必须注明出处. 目录(?)[-] ValueAnimator的高级用法 ObjectAnimator的高级用法 转载请注明出处:http://blog.csdn.ne ...

  6. android 属性动画实例,Android属性动画完全解析 中 ,ValueAnimator和ObjectAnimator的高级用法...

    大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画进行了 ...

  7. android 自定义view如何控制view的高度_Android自定义View属性动画

    属性动画 DEMO地址:https://github.com/chaozhouzhang/CustomProgressView 1.值动画 ValueAnimator 值动画具体实现步骤: /** * ...

  8. 属性动画基础之ValueAnimator

    概述 属性动画是谷歌在android3.0(API level 11)时候给我们带来了属性动画,真正意义上带来了"动画",以前的帧动画也就4中效果的组合(旋转.淡入淡出.放大缩小. ...

  9. android开发笔记之属性动画

    属性动画简单介绍 作用对象:任意 Java 对象 不再局限于 视图View对象 实现的动画效果:可自定义各种动画效果 不再局限于4种基本变换:平移.旋转.缩放 & 透明度 特点 作用对象进行了 ...

最新文章

  1. HTML代码编写规范
  2. 《乐高EV3机器人搭建与编程》——2.2 颜色设计
  3. XML 序列化 【译】
  4. MyBatis中Mapper代理方式
  5. 华为库存至少够缓冲一年;张朝阳质疑 5G 微波危害;苹果iOS 13不受支持机型曝光 | 极客头条...
  6. python将列表写入文件_Python将列表数据写入文件(txt, csv,excel)
  7. 打造狂拽炫酷的主流自定义侧滑控件(仿酷狗和QQ5.0)
  8. CAD图纸格式转换怎么操作?如何转换常见图纸格式?
  9. dx逆向建模步骤_初级反求逆向建模(一)
  10. 如何让word中清晰的图片无损导出为pdf?
  11. 人机平台:商业未来行动路线图
  12. 编译内核出错:Unable to find the ncurses package. recipe for target ‘scripts/kconfig/.mconf-cfg‘ failed
  13. 数据处理笔记6:缺失值填充
  14. web前端新手入门:中国互联网的发展史
  15. 几种操作系统的基本特点
  16. keras 使用WGAN-div进行图像生成
  17. OSError: [WinError 1455] 页面文件太小,无法完成操作
  18. 6-DoF问题相关基础知识笔记
  19. gitee 从 拉取新分支到本地_git fetch 的简单用法:更新远程代码到本地仓库
  20. windows 安装包管理器scoop

热门文章

  1. 专家观点:即使在云中 硬件同样至关重要
  2. pku acm 2140 Herd Sums http://acm.pku.edu.cn/JudgeOnline/problem?id=2140
  3. 【Vegas原创】恢复Oracle Package的笨方法
  4. linux系统的运行定义在,Linux系统运行级管理
  5. 全国计算机等级考试题库二级C操作题100套(第66套)
  6. java 动态按钮_java-向片段动态添加按钮
  7. mysql读锁和写锁
  8. mysql删除delete语句
  9. php组装json数据包,php封装json通信接口详解及实例
  10. 史上最全的Nginx配置参数中文说明