import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.Toast; public class MainActivity extends Activity { private ImageView iv;
private ObjectAnimator a;
private ObjectAnimator t;
private ObjectAnimator r;
private ObjectAnimator s; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
iv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "点我", 0).show();
}
});
} /**
* 透明度
*/
public void alpha(View v) {
a = ObjectAnimator.ofFloat(iv, "alpha", 0, 1, 0.5f,
0.1f, 0.8f);
// 设置时间
a.setDuration(1000);
// 设置动画的重复次数
a.setRepeatCount(1);
a.start();
} /**
* 位移动画
*/
public void translate(View view) {
/**
* target :座动画的目标控件 propertyName :动画的属性名 values :属性值
*/
// ObjectAnimator t = ObjectAnimator.ofFloat(iv, "translationX",
// 0,100,20,80,10,200); t = ObjectAnimator.ofFloat(iv, "translationY", 0, 100,
20, 80, 10, -50);
// 设置时间
t.setDuration(1000);
// 设置动画的重复次数
t.setRepeatCount(1);
// t.setRepeatMode(ObjectAnimator.REVERSE);
// 开始播放动画
t.start();
} /**
* 旋转动画
*/
public void rotate(View view) {
// ObjectAnimator r = ObjectAnimator.ofFloat(iv, "rotation", 0, 45, 270,
// ObjectAnimator r = ObjectAnimator.ofFloat(iv, "rotationX", 0, 45,
// 270,360, 100); r = ObjectAnimator.ofFloat(iv, "rotationY", 0, 45, 270,
360, 100);
// 设置时间
r.setDuration(1000);
// 设置动画的重复次数
r.setRepeatCount(1);
// t.setRepeatMode(ObjectAnimator.REVERSE);
// 开始播放动画
r.start();
} /**
* 缩放
*/
public void scale(View view) {
// ObjectAnimator s = ObjectAnimator.ofFloat(iv, "scaleX",10, 1, 0, 5,1); s = ObjectAnimator.ofFloat(iv, "scaleY",5, 1, 0, 5,1);
// 设置时间
s.setDuration(2000);
// 设置动画的重复次数
s.setRepeatCount(1);
// t.setRepeatMode(ObjectAnimator.REVERSE);
// 开始播放动画
s.start();
} /**
* 动画的合集
*/
public void set(View v) {
AnimatorSet set = new AnimatorSet();
//添加要播放的动画,一起装x一起飞
// set.playTogether(a,t,r,s);
//一个装x一个飞
set.playSequentially(a,t,r,s);
//设置目标
set.setTarget(iv);
//开始播放动画
set.start();
}
}

ObjectAnimator属性动画示例代码的更多相关文章

  1. ObjectAnimator属性动画应用demo

    感谢慕课网--eclipse_xu 布局文件:activity_main.xml <FrameLayout xmlns:android="http://schemas.android. ...

  2. 【属性动画示例】Property Animation

    MainActivity 属性动画常用操作 // 可操控的属性有:alpha:x/y:scaleX/scaleY:rotation/rotationX/rotationY:transitionX/tr ...

  3. 【Android - 基础】之Animator属性动画

    1      概述 在3.0系统之前,Android给我们提供了逐帧动画Frame Animation和补间动画Tween Animation两种动画: 1)        逐帧动画的原理很简单,就是 ...

  4. 【Android - 进阶】之Animator属性动画

    1.概述 在3.0系统之前,Android给我们提供了逐帧动画Frame Animation和补间动画Tween Animation两种动画: 逐帧动画的原理很简单,就是将一个完整的动画拆分成一张张单 ...

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

    经过这两天对ObjectAnimator属性动画的学习,基本对Android提供的属性动画有了一定的认识,现在就为大家以一个类似扇形打开的效果做总结. 效果图: 下面就让我们用刚刚学到的属性动画效果, ...

  6. Android属性动画之ObjectAnimator

    相信对于Android初学者,对于Android中的动画效果一定很感兴趣,今天为大家总结一下刚刚学到的属性动画案例. 首先和一般的Android应用一样,我们先建一个工程,为了方便,我们的布局文件中就 ...

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

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43536355 大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法 ...

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

    前言 我们都知道 Android 自带了 Roate Scale Translate Alpha 多种框架动画,我们可以通过她们实现丰富的动画效果,但是这些宽家动画却有一个致命的弱点,它们只是改变了 ...

  9. Android 属性动画ObjectAnimator和ValueAnimator讲解

    区别: ObjectAnimator 是直接对某个view进行更改. ValueAnimator 根据 TimeInterpolator 在不断产生相应的数据,来传进view  ,view自己做改变. ...

随机推荐

  1. 操作xml文件

    http://www.cnblogs.com/ 一.xml文件体系如下: <?xml version="1.0" encoding="utf-8" ?&g ...

  2. spring 通用mapper的一些注解

    1.1@Table 注解 注解作用:建立实体类和数据库表之间的对应关系.默认规则:实体类类名首字母小写作为表名.Employee 类→employee 表. 用法:在@Table 注解的 name 属 ...

  3. python学习笔记:安装boost python库以及使用boost.python库封装

    学习是一个累积的过程.在这个过程中,我们不仅要学习新的知识,还需要将以前学到的知识进行回顾总结. 前面讲述了Python使用ctypes直接调用动态库和使用Python的C语言API封装C函数, C+ ...

  4. HLS manifest standard 翻译: HTTP Live Streaming draft-pantos-http-live-streaming-23

    我为什么要干这种事 Introduction to HTTP Live Streaming 1 OVerview Multimedia presentation : specified by a Un ...

  5. Hive正则表达式

    正则表达式基本语法 用圆括号将所有选择项括起来,相邻的选择项之间用|分隔.但用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用. 其中 ?: 是非捕获元之一,还 ...

  6. shell 中的通配符:

    shell 中的通配符: *: 代表 0 个或者多个任意字符 ?: 代表一定有一个的任意字符 []: 代表一定有一个在括号内的字符(非任意字符).例如[abcd]代表一定有一个字符,可能是 abcd ...

  7. Django 语法笔记

    Django 语法 创建项目框架 django-admin startproject 项目名 创建子app 业务分化,可以优化团队合作,可以明确找锅 python manage.py startapp ...

  8. Caffe---自带工具 绘制loss和accuracy曲线

    Caffe自带工具包---绘制loss和accuracy曲线 为什么要绘制loss和accuracy曲线?在训练过程中画出accuracy 和loss曲线能够更直观的观察网络训练的状态,以便更好的优化 ...

  9. MongoDB安全运维

    0×00 MongoDB权限介绍 1.MongoDB安装时不添加任何参数,默认是没有权限验证的,登录的用户可以对数据库任意操作而且可以远程访问数据库,需以–auth参数启动. 2.在刚安装完毕的时候M ...

  10. git 获得当前分支名及其对应的远程分支

    git 获得当前分支名及其对应的远程分支 git symbolic-ref -q --short HEADgit rev-parse --abbrev-ref --symbolic-full-name ...