一次搞定 Android 基本动画 大清理


1.Tween Animation 变换动画

Alpha:渐变透明度动画
Scale:渐变尺寸缩放动画
Translate:位置移动动画
Rotate:旋转动画

共同属性:
(1)Duration:动画持续时间(单位:毫秒)
(2)fillAfter:设置为true,动画转化在动画结束后被应用
(3)fillBefore:设置为true,动画转化在动画开始前被应用
(4)interpolator:动画插入器(加速、减速插入器)
(5)repeatCount:动画重复次数
(6)repateMode:顺序重复/倒序重复
(7)startOffset:动画之间的时间间隔(组合动画常用)

Animation 实现方式
(1)配置文件(/res/anim)- alpha、scale、translate、rotate
(2)Java代码实现 - AlphaAnimation、ScaleAnimation、TranslateAnimation、RotateAnimation

2.Frame Animation 帧动画

3.Layout Animation 布局动画

4.Property Animation 属性动画
Tween Animation(变换动画)
1.共同属性:
(1)Duration:动画持续时间(单位:毫秒)
(2)fillAfter:设置为true,动画转化在动画结束后被应用
(3)fillBefore:设置为true,动画转化在动画开始前被应用
(4)interpolator:动画插入器(加速、减速插入器)
(5)repeatCount:动画重复次数
(6)repateMode:顺序重复/倒序重复
(7)startOffset:动画之间的时间间隔(组合动画常用)
Tween Animation(变换动画)
1.共同属性:
(1)Duration:动画持续时间(单位:毫秒)
(2)fillAfter:设置为true,动画转化在动画结束后被应用
(3)fillBefore:设置为true,动画转化在动画开始前被应用
(4)interpolator:动画插入器(加速、减速插入器)
(5)repeatCount:动画重复次数
(6)repateMode:顺序重复/倒序重复
(7)startOffset:动画之间的时间间隔(组合动画常用)
1.变换动画(TweenAnimation):
<1>种类:
Alpha渐变透明度动画
Scale渐变尺寸动画
Translate位置移动动画
Rotate旋转动画
<2>共同属性:
Duration:动画持续时间(ms)
fillAfter 设置为true,动画转化在动画结束后被应用
fillBefore 设置为true,动画转化在动画开始前被应用
interpolator 动画插入器(加速/减速)
repeatCount 重复次数
repateMode 顺序重复/倒序重复
startOffset 动画之间的时间间隔
<3>实现方式:
配置文件(res/anim)- alpha,scale,translate,rotate(适用于固定场合)
Java代码实现-AlphaAnimation,ScaleAnimation,TranslateAnimation,RotateAnimation
2.属性动画(PropertyAnimation):
3.帧动画(FrameAnimation):
4.布局动画(LayoutAnimation):
1.Tween Animation 变换动画 (动画局限性大,只是不断调用系统的ondraw()方法,浪费系统资源,不易监听交互) 

Alpha:渐变透明度动画
Scale:渐变尺寸缩放动画
Translate:位置移动动画
Rotate:旋转动画

共同属性:
(1)Duration:动画持续时间(单位:毫秒)
(2)fillAfter:设置为true,动画转化在动画结束后被应用
(3)fillBefore:设置为true,动画转化在动画开始前被应用
(4)interpolator:动画插入器(加速、减速插入器)
(5)repeatCount:动画重复次数
(6)repateMode:顺序重复/倒序重复
(7)startOffset:动画之间的时间间隔(组合动画常用)

Animation 实现方式
(1)配置文件(/res/anim)- alpha、scale、translate、rotate
(2)Java代码实现 - AlphaAnimation、ScaleAnimation、TranslateAnimation、RotateAnimation

2.Frame Animation 帧动画

3.Layout Animation 布局动画

4.Property Animation 属性动画

四种基础动画实现

AlphaAnimation(透明度动画)

透明度动画。

fromAlpha 动画起始时透明度

toAlpha 动画终止时透明度

0.0 表示完全透明 1.0 表示完全不透明

ScaleAnimation(缩放动画)

(1)fromX,toX分别是起始和结束时x坐标上的伸缩尺寸

(2)fromY,toY分别是起始和结束时y坐标上的伸缩尺寸.

(3)pivotX,pivotY分别为伸缩动画相对于x,y坐标开始的位置

TranslateAnimation(位移动画)

(1)fromXDelta,fromYDelta分别是起始时X,Y的坐标

(2)toXDelta,toYDelta分别是结束时X,Y的坐标

RotateAnimation(旋转动画)

(1)fromDegrees起始的角度

(2)toDegrees终止的角度

(3)pivotX,pivotY分别为旋转动画相对于x,y的坐标开始位置


创建动画配置文件
Alpha:
<set>
--<alpha android:duration="1000" fromAlpha=0.1 toAlpha=1.0/>
</set>
Scale:
<set>
------<scale duration=2000 fillAfter=false
--------------fromXScale=0.0 fromYScale=0.0
---------------interpolator=XXxxxx
---------------pivotX=0% pivotY=0% 从图片中心位置缩放
---------------toXScale=1.0 toYScale=1.0/>
</set>
translate:
配置duration=2000 fromXDelta=10 fromYDelta=10起点
--------------------toXDelta=100 toYDelta=100终点
rotate:
set标签中加入rotate标签设置fromDegrees toDegrees起始角度,末尾角度
--------------------------旋转中心pivotX=50% pivotY=50%

特效示例

Activity切换动画:

使用overridePendingTransition方法.

参数:第二个Activity进入动画,第一个Activity退出时的动画

LayoutAnimation(布局动画)

为View Groups添加动画,使用LayoutAnimationController

LayoutAnimation可以用来为View Groups添加动画,并按照预定的顺序,把一个动画(或者动画集合)应用到View Group中的每一个子View中,可以使用LayoutAnimationController来指定一个应用到ViewGroup中的每一个子View中的动画

//布局动画使用
LayoutAnimationController lac=new LayoutAnimationController(AnimationUtils.loadAnimation(this,R.anim.zoom_in));
lac.setOrder(LayoutAnimationController.ORDER_RANDOM);//指定动画顺序
listView.setLayoutAnimation(lac);//加载布局动画
listView.startLayoutAnimation();

FrameAnimation(逐帧动画)

使用animation-list标签来分组一个item标签集合,定义要显示的图片,指定显示它的时间(以毫秒为单位)

FrameAnimation 逐帧动画 在drawable文件下新建一个xml(例如anim_list.xml)文件,使用animation-list标签来分组一个item标签集合。

//倒叙重复REVERSE   正序重复RESTART
alphaAnimation.setRepeatMode(Animation.REVERSE);
组合动画——续播一:两个加载器,并给第一个动画设置监听器(复写三个方法,在onAnimationEnd()中开启第二个动画的加载器)
Activity切换动画
使用overridePendingTransition方法
参数: 第二个Activity进入时的动画
-------第一个Activity退出时的动画
startActivity(intent);
overridePendingTransition(R.anim.zoom_in,R.anim.zoom_out)
动画可以设置监听器onAnimationListener,在这个监听器中有3个方法,
我们可以根据我们要实现的功能去实现不同的逻辑
Animation对象可以设置动画监听器
.setAnimationListener()监听动画开始或者结束时的事件
在配置文件中设置startOffset 可以延迟播放
逐帧动画FrameAnimation
用一个<animation-list>标签包含
多个<item android:drawable=@drawable/one|two|tree duration=500>标签
LayoutAnimation布局动画
在布局动画控制器中添加一个动画
LayoutAnimationController lac=new LayoutAnimationController (AnimationUtils.loadAniamtion(this,R.anim.zoom_in))
设置加载顺序
lac.setOrder(LayoutAnimationController.ORDER_RANDOM)
ListView加载动画
listView.setLayoutAnimation(lac)
启动动画
listView.startLayoutAnimation()
时间: 2024-11-01 18:14:45

一次搞定 Android 基本动画 大清理的相关文章

使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发具体解释

转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50909410 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发具体解释 演示样例源代码: https://github.com/junkchen/BleLib/tree/master/sample Android ble4.0开发基础篇:http://blog.csdn.net/kjunchen/article/details/50339549 BleLib是An

【Android自定义ViewGroup】不一样的轮子,巧用类变量解决冲突,像IOS那样简单的使用侧滑删除,一个控件搞定Android item侧滑删除菜单。

================================================================================== [1 序言] 侧滑删除的轮子网上有很多,最初在github上看过一个,还是ListView时代,那是一个自定义ListView 实现侧滑删除的,当初就觉得这种做法不是最佳,万一我项目里又同时有自定义ListView的需求,会增加复杂度. 写这篇文章之前又通过毒度搜了一下,排名前几的CSDN文章,都是通过自定义ListVIew和Vie

1分钟搞定Android开发智能提示问题xml文件一并搞定

eclipse 搭建的Android开发环境,但是开发起来发现IDE的提示功能不是很理想,在此总结了一下,1分钟内,2步搞定! 如下: 1.设置.java文件的提示 将红框中的值设置为:.abcdefghigklmnopqrstuvwxyz 这样输入任何小写字母都能唤出提示了. t2.jpg (958.47 KB, 下载次数: 0) 下载附件 12 分钟前 上传 效果如下: 2.设置.xml文件的提示 效果如下:

如何搞定Android同事所有不规范代码,我用了这招...

前言 以前对下面的问题,我的态度是,不报错就是没问题,报错就用快捷键,根据Android Studio提示修复问题,从来不去问个为什么?现在代码洁癖症越来越严重的我,忍不住想看清什么东西在搞鬼. 认真看完本文,一定可以学到最新的知识.就算看不下去,也要点个赞收藏,绝对不亏.本文并不是吐槽Lint的不好,而是在学习Lint过程碰到问题,心态是奔溃的,以及解决每个问题带来的喜感. 不知道大家有没有注意项目中黄代码块的提示,如下图所示: 或者红色标记的代码(并没有任何错误),如下图所示: 上文黄的提醒

教你搞定Android自定义View

Android App开发过程中,很多时候会遇到系统框架中提供的控件无法满足我们产品的设计需求,那么这时候我们可以选择先Google下有没有比较成熟的开源项目可以让我们用,当然现在Github上面的项目非常丰富,能够满足我们绝不多数的开发需求,但是在使用这些炫酷的第三方控件时,我们也要想一想,我们是不是也可以发挥自己的想象力,动手实现自己想要的控件,尽可能掌控实现的细节! View Android所有的控件都是View或者View的子类,它其实表示的就是屏幕上的一块矩形区域,用一个Rect来表示

stylie工具轻松搞定css3抛物线动画

自从CSS3引入了动画(transition和@keyframes,还有与之搭配的transform)之后,写动画也变的越来多越来越容易. 可是当我们遇到需要利用数学公式的复杂动画时,却一筹莫展,只能怪小时候数学没学好(可能是语文老师教的).那么问题来了,但我拿到要实现这样的需求,该如何: 可能我们会去苦恼,加班熬夜的去补功课去解决,可是这样真的很费劲,那么,我们就来分析一下如何,快速解决 要想做出这样的动画,我们必先知道其运动的原理,不是吗,鉴于抛物线太多了,这里只对最简单的匀变速曲线运动做分

爬虫工程师分享:三步就搞定 Android 逆向

本文源于我近期的一次公司内部分享,通过逆向某款 APP 来介绍逆向过程.由于仅作为学习用途,APP 的相关信息会被遮盖,敬请理解. 关于逆向 逆向--包括但不限于通过反编译.Hook 等手段,来解析一些功能的实现过程. 逆向在很多领域都有应用,比如如今爬虫技术已经遍地走,甚至不用写代码都可以爬取数据,导致前端开发的反爬意识也逐步提升.因此 JS.Android 等领域的逆向,已经成为爬虫开发者必备的技能之一. 本文介绍的是最典型常见的传参加密,在很多应用接口都能见到,如果我们逆向解析出加密过程,

马上搞定Android平台的Wi-Fi Direct开发

导语 移动互联网时代,很多用户趋向于将大量的资料保存在移动设备上.但在给用户带来便利的同时引发了一个新的问题——保存在移动设备上的资料该怎样共享出去?到了思考时间,普通青年这样想:折腾什么劲啊,直接用数据线不就行了:而文艺青年可能这样想:咱们建个群吧,大家有好的东西都可以共享:二逼青年不高兴了,都特么互联网时代了,来点新意,好么?直接上网盘啊,大家互相研究研究,你懂的,嘿嘿.然而我是这样想的:都特么别BB,技术要以时俱进,来个新潮点的不行么?直接上Wi-Fi Direct.好用简单不解释.那么我

五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程

在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入Android开发的朋友有帮助. 本教程将分为五个步骤来完成Android开发环境的部署. 第一步:安装JDK. 第二步:配置Windows上JDK的变量环境 . 第三步: 下载安装Eclipse . 第四步:下载安装Android SDK . 第五步:为Eclips