ObjectAnimator属性动画示例代码
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属性动画示例代码的更多相关文章
- ObjectAnimator属性动画应用demo
感谢慕课网--eclipse_xu 布局文件:activity_main.xml <FrameLayout xmlns:android="http://schemas.android. ...
- 【属性动画示例】Property Animation
MainActivity 属性动画常用操作 // 可操控的属性有:alpha:x/y:scaleX/scaleY:rotation/rotationX/rotationY:transitionX/tr ...
- 【Android - 基础】之Animator属性动画
1 概述 在3.0系统之前,Android给我们提供了逐帧动画Frame Animation和补间动画Tween Animation两种动画: 1) 逐帧动画的原理很简单,就是 ...
- 【Android - 进阶】之Animator属性动画
1.概述 在3.0系统之前,Android给我们提供了逐帧动画Frame Animation和补间动画Tween Animation两种动画: 逐帧动画的原理很简单,就是将一个完整的动画拆分成一张张单 ...
- Android属性动画之第一重修炼总结
经过这两天对ObjectAnimator属性动画的学习,基本对Android提供的属性动画有了一定的认识,现在就为大家以一个类似扇形打开的效果做总结. 效果图: 下面就让我们用刚刚学到的属性动画效果, ...
- Android属性动画之ObjectAnimator
相信对于Android初学者,对于Android中的动画效果一定很感兴趣,今天为大家总结一下刚刚学到的属性动画案例. 首先和一般的Android应用一样,我们先建一个工程,为了方便,我们的布局文件中就 ...
- Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43536355 大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法 ...
- Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了
前言 我们都知道 Android 自带了 Roate Scale Translate Alpha 多种框架动画,我们可以通过她们实现丰富的动画效果,但是这些宽家动画却有一个致命的弱点,它们只是改变了 ...
- Android 属性动画ObjectAnimator和ValueAnimator讲解
区别: ObjectAnimator 是直接对某个view进行更改. ValueAnimator 根据 TimeInterpolator 在不断产生相应的数据,来传进view ,view自己做改变. ...
随机推荐
- Shell中比较判断
一.shell判断数组中是否包含某个元素:ary=(1 2 3)a=2if [[ "${ary[@]}" =~ "$a" ]] ; then echo & ...
- 人工智能_4_k近邻_贝叶斯_模型评估
机器学习常用算法 k近邻算法 求出未知点 与周围最近的 k个点的距离 查看这k个点中大多数是哪一类 根号((x已知-x未知)^2+(y已知-y未知)^2) 即平面间2点距离公式 收异常点影响较大,因此 ...
- Oracle笔记(十四) 用户管理
SQL语句分为三类:DML.DDL.DCL,之前已经讲解完了DML和DDL,现在就差DCL操作的,DCL主要表示的是数据库的控制语句,控制的就是操作权限,而在DCL之中,主要有两个语法:GRANT.R ...
- STM32L1xx——sx1278开发之LoRa扩频技术基础知识
扩频技术的发现 1944年,好莱坞26岁女影星HedyLamarr(号称世界上最美丽的女人)发明了扩频通信技术,这种跳频技术可以有效地抗击干扰和实现加密. 后来人们发现,扩频技术可以得到如下收益:从各 ...
- kubernetes之健康状态检测
1.说明 容器探针: kubelet 对容器执行的定期诊断 探针执行方式: LivenessProbe: 判断容器是否存活 running状态, 如果不健康kubelet就会杀掉pod,根据重启策略R ...
- map()函数浅析
MapReduce的设计灵感来自于函数式编程,这里不打算提MapReduce,就拿python中的map()函数来学习一下. 文档中的介绍在这里: map(function, iterable, .. ...
- LoadRunner(6)
一.脚本录制技术细节 1.选择合适的协议: 1)B/S架构:常用Web[HTTP/HTML]协议,如果项目中使用了其它技术,比如Ajax.JDBC.FTP等,就需要选择多协议: 2)C/S架构:常用W ...
- Word2Vec详解
Word2Vec详解 word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练:其次,该工具得到的训练结果--词向量(word embedding),可以很好地度量词与词之间的相似性.随着 ...
- 下划线文字,鼠标hover小样式
CSS样式 //不只是a标签,其他有下划线的字体也可以 a:hover{ color: #ff3100; //这里的颜色是指字体颜色不是波浪下划线效果的svg图颜色 text-decorati ...
- vue store获取值时 Computed property "activeTag" was assigned to but it has no setter.
出现原因: element-ui中 el-tab绑定的值在切换tab时会自动修改 而activeTag是从store中获取的值,不能直接修改 要添加给它绑定上set <el-tabs cla ...