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. com.android.ddmlib.adbcommandrejectedexception:未经授权的设备。

    出现这种问题的原因是adb被杀死了,根据网上的说法在platform-tools下双击adb.exe 也启动不了. 在命令提示符中执行    adb kill-server adb start-ser ...

  2. Centos7安装dig命令

    作者: jwj 时间: 2018-10-17 分类: 服务器 最近做一个项目,需要用到Gmail邮箱发送邮件,但发现发送不出去.排查问题时,需要用到dig命令,但使用时,却提醒我dig命令不存在~那就 ...

  3. Windows下Pycharm安装Tensorflow:ERROR: Could not find a version that satisfies the requirement tensorflow

    今天在Windows下通过Pycharm安装Tensorflow时遇到两个问题: 使用pip安装其实原理都相同,只不过Pycharm是图形化的过程! 1.由于使用国外源总是导致Timeout 解决方法 ...

  4. 关于微信小程序的本地存储

    微信小程序中会使用wx.setStorage(wx.setStorageSync)来存储数据,问题是:即使小程序被销毁了,本地缓存的数据仍然存在.会造成: 所以要及时清理掉本地缓存的数据.解决思路: ...

  5. 前端小白页面开发注意事项及小工具(html\css\js)

    技术一直在向前发展.但是有一些是相通的,要找准重点,将80%的时间放在提升基础问题上,余下的20%再去学习框架,库和工具. HTML 1. HTML 属性应当按照以下给出的顺序依次排列,确保代码的易读 ...

  6. Eclipse里修改SVN的用户名和密码

    删除Eclipse subclipse plugin中记住的SVN用户名密码: 1) 查看你的Eclipse中使用的是什么SVN Interface    windows > preferenc ...

  7. canvas drawImage图片不显示问题

    初次学习canvas,用来做笔记记录下遇到的问题及解决方案 这里是要将一张图片写到canvas里,按照网上搜索,初写了段代码,可是却没显示,以为是路径问题,不能跨域名使用,后来改为相对路径后,仍然无效 ...

  8. Codeforces Round #586 (Div. 1 + Div. 2) C. Substring Game in the Lesson

    链接: https://codeforces.com/contest/1220/problem/C 题意: Mike and Ann are sitting in the classroom. The ...

  9. Markdown使用教程(转载收藏)

    基础语法 标题 Markdown支持6种级别的标题,对应html标签 h1 ~ h6 # h1 ## h2 ### h3 #### h4 ##### h5 ###### h6 以上标记效果如下: h1 ...

  10. 017_linuxC++之_多态的引入

    多态:一种接口,多种方法(同一种调用方法,根据不同的对象,调用不同类中的函数)静态联编:非虚函数,在编译时确定好动态联编:   1. 对象里有指针,指向虚函数表 2. 通过指针,找到表,调用虚函数 3 ...