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>

图片资源

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 }

时间: 2024-10-11 06:57:32

ObjectAnimator属性动画应用demo的相关文章

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

转载请注明出处(万分感谢!): http://blog.csdn.net/javazejian/article/details/52273733 出自[zejian的博客] 1.属性动画概述 ??动画一直是App增强用户交互和用户体验的一个重要环节,特别是在某些提示场景或者广告场景中,合理使用动画可以给用户带来更加愉悦的使用体验,因此我们很有必要掌握动画的使用及其原理,从本篇开始,我们就来全面深入了解属性动画的使用及其原理.我们知道在早期的Android版本中,由于动画机制不健全,如补间动画只能

Android属性动画之第一重修炼总结

经过这两天对ObjectAnimator属性动画的学习,基本对Android提供的属性动画有了一定的认识,现在就为大家以一个类似扇形打开的效果做总结. 效果图: 下面就让我们用刚刚学到的属性动画效果,来实现上述的效果:首先我们需要准备8张小图标,将他们放到res目录下的drawable文件中,下面就是布局文件,布局文件很简单,就是把这8张小图标使用ImageView引入到界面中,需要注意的就是把做为开关的图标,放到最下面,下面就看一下具体的实现: /** * 属性动画综合小例子 * Create

Android 动画详解之属性动画(Property Animation)

转载请注明http://blog.csdn.net/u014163726/article/details/41210951 前文也提到过Android 3.0以后引入了属性动画,属性动画可以轻而易举的办到许多View动画做不到的事,今天我们就来学习一下属性动画. 前文提到过View动画只是改变了View的绘制效果,而属性动画则是真正的改变一个属性,效果如下图. 对比Android 动画详解之View动画我们可以看到明显的区别,那么属性动画究竟是怎么用的呢,莫慌,接下来代码奉上. 1,Object

Android 属性动画 详解

认识属性动画 传统动画Animation平移方法的实现 TranslateAnimation animation = new TranslateAnimation(x轴初始位置,x轴终止位置,y轴初始位置,y轴终止位置); animation.setDuration(1000);//设置持续时间,ms单位 animation.setFillAfter(true);//设置动画结束后状态,true为保持最终状态 imageView.startAnimation(animation);//为控件添加

Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了

前言 我们都知道 Android 自带了 Roate Scale Translate Alpha 多种框架动画,我们可以通过她们实现丰富的动画效果,但是这些宽家动画却有一个致命的弱点,它们只是改变了 View 显示的大小,而没有改变 View 的响应区域.这时以 ObjectAnimator.ValueAnimator 为代表的属性动画也就应运而生了. 简单效果 工作原理 属性动画字如其名,是通过改变 View 的属性值来改变控件的形态,说白了就是通过反射技术来获取控件的一些属性如宽度.高度等的

【转】android 属性动画之 ObjectAnimator

原文网址:http://blog.csdn.net/feiduclear_up/article/details/39255083 前面一篇博客讲解了 android 简单动画之 animtion,这里来讲解一下android 3.0之后添加的一些动画   animator 中的 ObjectAnimator . 属性动画概念: 所谓属性动画:改变一切能改变的对象的属性值,不同于补间动画:只能改变 alpha,scale,rotate,translate.听着有点抽象,举例子说明 补间动画能实现的

Android属性动画之ObjectAnimator

相信对于Android初学者,对于Android中的动画效果一定很感兴趣,今天为大家总结一下刚刚学到的属性动画案例. 首先和一般的Android应用一样,我们先建一个工程,为了方便,我们的布局文件中就只添加一个ImageView和button按钮,代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.andr

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

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43536355 大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画进行了很大幅度的改进,之前补间动画可以做到的属性动画也能做到,补间动画做不到的现在属性动画也可以做到了.因此,今天我们就来学习一下属性动画的高级用法,看看如何实现一些补间动画

属性动画之ObjectAnimator

ObjectAnimator,通过设置改变对象的属性来实现动画效果,常用的方法有这么几种,ofFloat().ofInt().ofObject().ofArgb().ofPropertyValuesHolder(),具体含义及使用我们在下面的实例中进行讲解. 一.动画类型 使用ObjectAnimator也是可以轻松的实现平移.缩放.旋转.透明度这几种动画效果的,与补间动画的使用效果是一样的,那就先来看看这几种常用的动画是怎么实现的. 工程代码里就是一个ImageView控件和Activity,