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基础--JAVA API集合框架(其他集合类,集合原理)
一.ArrayList介绍 1.ArrayList介绍 ArrayList它是List接口的真正的实现类.也是我们开发中真正需要使用集合容器对象. ArrayList类,它是List接口的实现.肯定拥 ...
- Eclipse 新建.jsp页面后,页面头部标签报错的解决方法
Eclipse 新建.jsp页面后,页面头部标签报错的解决方法 1.报错地方: 2.解决方法: .jsp页面右键==>BUild Path ==>Configure Build Path. ...
- maven中scope属性的
Dependency Scope 在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署.目前<scope>可以使用5个值: * c ...
- mac 安装 php7 及扩展
mac 版本号:10.12.3 (16D30) 安装内容 php7.0.18(配置apache),composer,phpunit,xdebug扩展,docopts,mongo和redis扩展 php ...
- ASP.NET配置KindEditor文本编辑器
文本编辑器:CKEditor和CKFinder KindEditor 1.KindEditor KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开 ...
- Abp添加新的Api(不扩展底层方法)
定义新的实体类:FileManage;继承 FullAuditedEntity<Guid> 在XX.Application 中定义IXXservice及实现XXservice public ...
- 转载:Cesium的Property机制总结
转自:https://www.jianshu.com/p/f0b47997224c 前言 Cesium官方教程中有一篇叫<空间数据可视化>(Visualizing Spatial Data ...
- shell 脚本中的入参获取与判断
1.获取shell脚本的入参个数: $# 2.获取shell脚本的第n个入参的字符个数/字符串长度(注意这里的n需要替换为具体的数字,如果这个数字超过实际的入参个数,结果为0): ${#n}
- IO模型(epoll)--详解-02
写在前面 从事服务端开发,少不了要接触网络编程.epoll作为linux下高性能网络服务器的必备技术至关重要,大部分游戏服务器都使用到这一多路复用技术.文章核心思想是:要让读者清晰明白EPOLL为什么 ...
- zabbix 添加 host item
Zabbix常用术语 host(主机):监控的网络设备,可由IP或DNS名称指定. host Group(主机组):Host的逻辑容器,可以包含主机和模板. Item(监控项):一个特定监控指标的相关 ...