Android 一般动画animation和属性动画animator
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package com.example.animation;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.animation.TranslateAnimation;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View view){ Toast.makeText(this, "click", Toast.LENGTH_SHORT).show(); } public void move(View view ){ float fromXDelta=0; float toXDelta=0; float fromYDelta=0; float toYDelta=200; TranslateAnimation animation = new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta); /** * time */ animation.setDuration(1000); animation.setFillAfter(true); ImageView imageView=(ImageView)findViewById(R.id.imageView); imageView.startAnimation(animation); } } |
这是一般动画,再看属性动画
区别:一般动画变换后只是图片移动了,view的位置不变,然而属性动画view随着图片移动。
|
1
2
3
4
5
|
public void move(View view ){ ImageView imageView=(ImageView)findViewById(R.id.imageView); ObjectAnimator.ofFloat(imageView, "translationY", 0f,200f).setDuration(1000).start();} |
多种动画同时进行
|
1
2
3
4
5
6
7
|
public void move(View view ){ ImageView imageView=(ImageView)findViewById(R.id.imageView); ObjectAnimator.ofFloat(imageView, "translationY", 0f,200f).setDuration(1000).start(); ObjectAnimator.ofFloat(imageView, "translationX", 0f,200f).setDuration(1000).start(); ObjectAnimator.ofFloat(imageView, "rotation", 0,360f).setDuration(1000).start();} |
Google提供了一种更节省系统资源的多种动画同时播放
|
1
2
3
4
5
6
7
8
9
|
public void move(View view ){ ImageView imageView=(ImageView)findViewById(R.id.imageView); PropertyValuesHolder p1=PropertyValuesHolder.ofFloat("rotation", 0,360f); PropertyValuesHolder p2=PropertyValuesHolder.ofFloat("translationX", 0f,200f); PropertyValuesHolder p3=PropertyValuesHolder.ofFloat("translationY", 0f,200f); ObjectAnimator.ofPropertyValuesHolder(imageView, p1,p2,p3).setDuration(1000).start();} |
同时Google提供了animatorset,允许多种不同动画按照用户要求播放,如使用set.palyTpgether() set.playSequentially()
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public void move(View view ){ ImageView imageView=(ImageView)findViewById(R.id.imageView); ObjectAnimator animator1=ObjectAnimator.ofFloat(imageView, "rotation", 0,360f); ObjectAnimator animator2=ObjectAnimator.ofFloat(imageView, "translationX", 0,200f); ObjectAnimator animator3=ObjectAnimator.ofFloat(imageView, "translationY", 0,200f); AnimatorSet set=new AnimatorSet(); //set.playTogether(animator1,animator2,animator3); set.playSequentially(animator1,animator2,animator3); set.setDuration(1000); set.start();} |
结伴旅游,一个免费的交友网站:www.jieberu.com
推推族,免费得门票,游景区:www.tuituizu.com
Android 一般动画animation和属性动画animator的更多相关文章
- Android动画效果之初识Property Animation(属性动画)
前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...
- Android动画系列之属性动画
原文首发于微信公众号:jzman-blog,欢迎关注交流! 属性动画相较帧动画和补间动画更强大,帧动画和补间动画只能应用于 View 及其子类,而属性动画可以修改任何对象的属性值,属性值可在指定的一段 ...
- android xml实现animation 4种动画效果
animation有四种动画类型 分别为alpha(透明的渐变).rotate(旋转).scale(尺寸伸缩).translate(移动),二实现的分发有两种,一种是javaCode,另外一种是XML ...
- css动画-animation各个属性详解(转)
CSS3的animation很容易就能实现各种酷炫的动画,虽然看到别人的成果图会觉得很难,但是如果掌握好各种动画属性,做好酷炫吊炸天的动画都不在话下,好,切入正题. 一.动画属性: 动画属性包括:①a ...
- 动画(Animation) 、 高级动画(Core Animation)
1 演示UIImage制作的动画 1.1 问题 UIImage动画是IOS提供的最基本的动画,通常用于制作一些小型的动画,本案例使用UIImage制作一个小狗跑动的动画,如图-1所示: 图-1 1.2 ...
- Android笔记(六十六) android中的动画——XML文件定义属性动画
除了直接在java代码中定义动画之外,还可以使用xml文件定义动画,以便重用. 如果想要使用XML来编写动画,首先要在res目录下面新建一个animator文件夹,所有属性动画的XML文件都应该存放在 ...
- Android动画效果之Property Animation进阶(属性动画)
前言: 前面初步认识了Android的Property Animation(属性动画)Android动画效果之初识Property Animation(属性动画)(三),并且利用属性动画简单了补间动画 ...
- Android动画主要包含补间动画(Tween)View Animation、帧动画(Frame)Drawable Animation、以及属性动画Property Animation
程序运行效果图: Android动画主要包含补间动画(Tween)View Animation.帧动画(Frame)Drawable Animation.以及属性动画Property Animatio ...
- Android(java)学习笔记263:Android下的属性动画(Property Animation)
1. 属性动画(Property Animation)引入: 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(fra ...
随机推荐
- Java第六周课堂示例总结
一.如果一个类中既有初始化块,又有构造方法,同时还设定了字段的初始值,谁说了算? public class InitializeBlockDemo { /** * @param args */ pub ...
- Thinkphp6框架学习:($this->error()undefined)Call to undefined method app\index\controller\Admin::error()
最近在使用Thinkphp6框架的时候,想做一个初始化来验证登录状态. 当没有Session::get(‘adminUid’)的时候就应该跳转到admin\adminLogin的方法中,和以前Tp5的 ...
- python_0基础开始_day04
第四节 一.列表 list 数据类型之一,存储大量的,不同类型的数据 列表中只要用逗号隔开的就是一个元素 有序可变的. 1.1列表的索引 列表和字符串一样也拥有索引,但是列表可以修改: lst = [ ...
- Python和其他编程语言
Python和其他编程语言 一.Python介绍 Python的创始人为吉多·范罗苏姆(Guido van Rossum),如下图,少数几个不秃头的语言创始人.1989年的圣诞节期间,Guido为了打 ...
- SpringMVC整体架构
总结: 1. 用户发起请求到前端控制器(DispatchServlet): 2. 前端控制器没有处理业务逻辑的能力,需要找到具体的模型对象处理(Handler),到处理器映射器中查找Handler对象 ...
- css3实现div自动左右动
<!DOCTYPE html> <meta charset="UTF-8"/> <html> <head> <style> ...
- vue中map组件
分享一个比较好用的基于百度地图的vue组件.也有react版本的,可以自行选择. 分享链接:点击
- Delphi 数组与记录类型
- 8.支撑向量机SVM
1.什么是SVM 下面我们就来介绍一些SVM(Support Vector Machine),首先什么是SVM,它是做什么的?SVM,中文名是支撑向量机,既可以解决分类问题,也可以解决回归问题,我们来 ...
- c++ 初学者的画图库EasyX
EasyX 什么是easyx? EasyX 是针对 C++ 的图形库,可以帮助 C++语言初学者快速上手图形和游戏编程.其实就是c++的一个图形库让初学者不用只在控制台输出代码,而是在图形界面进行开发 ...