hello,各位小伙伴们,在不少小伙伴们刚刚开始学习android的时候,经常会有一些project里面须要有一些基本动画的插入,那么具体是要怎么实现呢?咱们接下一块儿分析一下在android中的几种基本动画。html

(这里咱们默认是用我的以为比eclipse更智能一些的Android Studio来实现。ps:方法是同样的,没有区别,喜欢经常使用eclipse的朋友们别见怪哦。)java

在咱们进行具体学习android动画前首先,咱们要知道:在android中的动画通常是与事件的操做处理相关的,好比说经过触发某个事件而产生。好下面咱们正式开始:android

第一:首先咱们要知道在android中基础动画中主要分为四种:eclipse

1:Tween Animation.变换动画ide

2:Layout Animation 布局动画工具

3:Frame Animation.帧动画布局

4:Property Animation 属性动画post

在本篇中先学习前两种方法。学习

第二:动画学习动画

一:Tween Animation变换动画:

在变换动画中分为基本的四种:

1:Alpha:渐变透明度动画类型

2:Scale:渐变尺寸动画类型

3:Translate:位置移动动画类型

4:Rotate:旋转动画类型

其中这四种方法所通用的属性是同样的,属性以下:

1,Duration:表示动画持续时间,其单位为毫秒 ,通常在java中实现的是按照好比 button.setDuration(1000);(其中button为一个引用,1000为毫秒,也就是动画持续时间。)

2,fillAfter:表示动画转换在动画结束后被应用状态,也就是说好比在Translate中可能动画运行为一段平移,fillAfter就是说在动画结束后肯定动画对象所处的位置。其返回值为一个boolean值,为true时表示结束就定在结束的位置,若是为false就说明结束后跳回动画开始前的位置。

3,fillBefore:动画转化在动画开始前的位置,能够理解与fillAfter相互理解。

4,interpolator:动画插入器(用于对一个动画进行一个加速,减速插入器的做用)

5:repeatcount:动画重复的次数,对于重复动画的定义。

6:repeatmode:决定动画重复是顺序仍是倒序重复。

7,startoffset:动画与动画之间的时间间隔(通常用于两个或者多个动画的连续播放,也能够设置监听器来代替此功能)

那么在动画实现这一块上,除了能够用java来实现,也能够用布局调用来实现(下文将讲)

在java里,有以下几种类型:

1,AlphaAnimation有参数fromAlpha:起始时的透明度,toAlpha:结束后的透明度用(0.0f到1.0f表示)f表示浮点数。

2,ScaleAniamtion有fromX,toX,和fromY,toY,以及pirotX,priotY等参数,分别表示起始和结束时坐标的大小位置,以及对于x,y坐标开始的位置。

3,TranslateAnimation有参数fromxDelta,fromyDelta为移动前x,y的起始坐标,toxDelta,toyDelta分别为结束时的x,y坐标。

4,RotateAnimation有设置参数fromDegrees起始角度,toDegrees终止角度,以及pirotX,priotY参数。

好,接下来让咱们用一个例子展开讲解:

首先用Java语言来实现一个简单的Alpha动画,

1 Animation zhangch = new AlphaAnimation(0.1f,1.0f);2 zhangch.setDuration(5000);3 image.startAnimation(zhangch);

第一行中的参数由于用的是浮点数,因此要在每个数字后面加字母f,这两个参数的意思是说,第一个指在运行这个动画时动画的这个对象是从0.1的透明度开始变成第二个参数的1.0的透明度,1.0也就是正常照片了,0.0就是所有透明。

第二行是是设置动画的运行时间为2秒,2000毫秒。

第三行是指对象image开始执行动画。

可是,在android中除了能够用java纯代码来实现外,还能够用res文件下新建布局文件来调用实现,

1 Animation zhangch = AnimationUtils.loadAnimation(this, R.anim.scale);2 image.startAnimation(zhangch);

第一行的AnimationUtils是一个系统自带的工具类,loadAnimation是加载动画,里面的参数是指从当前界面调用res里面的anim文件夹里的scale文件,下图第一张为res文件设置,第二张为scale里面的布局:

具体事例以下:

按照UI界面所示执行对上方图标的动画演示,

其中continue_btn和continue_btn2为两个基本动画的组合,先看一下所需的构造

共须要两个java文件,两个layout文件,这里咱们只用java代码来实现动画而没有用布局调用是由于,java代码的动画能够更加适应于动态变换和管理,做为一名代码人应该保证代码优先选择。

首先进行layout布局

而后接着再来两个relativelayout就能够了,记得设置id名称。

下面进行代码部分:

其中这里须要有一个简单的讲解,对于上图这个连续动画的实现:咱们这里用的是一个设置监听器的过程,在case执行的内容里写下两个动画,start一个动画而且对这个动画设置一个Animation

监听器,系统会自动生成以下三个状态,咱们从字面意义上看出,只要在这个结束状态的执行命令中加入一句说明,start另外一个动画就能够实现连续的两个动画播放,若是有多个的话,能够再多设置。

固然还有经常使用的在一个页面跳转另外一个页面时的动画,以下所示,其中:

overridePendingTransition里面第一个参数表示第一个activity退出的动画,第二个参数表示第二activity进入的动画,这里用了布局调用,

其rotate布局以下:

interpolator为以前讲的属性里面的动画插入器。

好,这就是基本的第一个基础动画的实现,下面咱们说第二个基础动画,FrameAnimation

逐帧动画原理就是将很个图片对象按必定的速度播放让人产生好像连续动画的错觉。在这里就用一个例子来说解

在drawable下创建一个xml文件,在xml文件里写入list的多个对象,并加入肯定的值进去,

代码部分和第三个基础动画放到一块儿,LayoutAnimation

布局动画有分setOrder控制顺序和LayoutAnimationCotroller布局控制器

具体看例题java中的route为布局动画名:,move为逐帧动画名。

在一个新的Main3Activity中写下:

并在布局文件中写好list文件

就可运行。

好所有的代码包会在下面分析下载,关于属性动画比较复杂,下一讲中将专门讲解,但愿能够帮助到你们,O(∩_∩)O谢谢。

源android文件地址为 https://pan.baidu.com/s/1jHEi9Hs

若有不足之处,欢迎各位批评指正。

android studio实现动画,android studio上的基本动画实现(第一篇)相关推荐

  1. ios开发 方形到圆的动画_ios – cornerRadius上的CGAffineTransformMakeScale动画圆形UIButton...

    尝试将动画部分放在控制器类中而不是在子类按钮类中. //in customButton.h file #import @interface customButton : UIButton - (id) ...

  2. android 心跳效果动画,Android 心跳动画

    直接上代码  MainActivity public class MainActivity extends AppCompatActivity { private ImageView ivHart; ...

  3. android studio上的基本动画实现(第一篇)

    转自https://www.cnblogs.com/zhangch123/archive/2016/11/19/6079756.html hello,各位小伙伴们,在很多小伙伴们刚刚开始学习andro ...

  4. Android Studio录制手机屏幕并制作GIF演示动画

    逛简书,知乎或者GitHub时,看到很多大神写的技术文章,文章中有很多GIF演示动画来展示其所写代码的效果,这些GIF演示动画生动.形象的展示了笔者所要表达的意图.平时喜欢写点博客的我也按捺不住了,于 ...

  5. android 无法显示SD卡目录,Android studio无法在SD卡上创建新目录?

    我使用名为scanlibrary的库来扫描照片,然后将它传递给tess-two来执行OCR过程.问题是,在目录"ScanDemoExample"不被创建因此tessdata文件不会 ...

  6. Android Studio连接驱动装不上应用程序无法正常启动(oxc000007b)

    参考:https://blog.csdn.net/weixin_42144105/article/details/80210170 Android Studio连接驱动装不上. 使用豌豆荚安装设备驱动 ...

  7. android app启动图片 加动画效果,Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案...

    Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案 大家在设计APP的末期,都会想给APP搞一些"花里胡哨"的特效来提高APP的B格.博主表示亲测有效 ...

  8. android ndk 博客,Android Studio 2上利用NDK进行OpenCV 3.1开发

    本文主要分为两部分,第一部分采用实验性插件(Gradle Experimental Plugin)建立一个一般性的NDK应用,第二部分采用稳定版插件建立一个简单的灰度处理的OpenCV JNI应用. ...

  9. Android Studio的安装,史上最详细(超多图)!!

    android studio安装教程,史上最详细(超多图)!! 安装android studio,史上最详细(超多图)!! 欢迎前来观看,感觉有用就点波关注吧! android studio的安装(补 ...

最新文章

  1. polymer 绑定html元素,使用在Polymer元素内的light dom中定义的模板
  2. 想要使用 for循环,就要添加 索引器
  3. centos6.4安装及升级gcc 4.8.2(已实践)
  4. JAVA面试题(part2)--位运算符
  5. 干货|Spring Cloud Stream 体系及原理介绍
  6. 学习笔记: yield迭代器
  7. java创建集合有的不用泛型_Java如何创建泛型集合?
  8. Aircrack-ng套件_无线网卡破解
  9. matlab误差平方和
  10. 计算机开启蓝牙网络,怎么打开电脑蓝牙功能(笔记本电脑蓝牙怎么开)
  11. 服务器总出现异常?几个小方法助你防范于未然
  12. 满足国六标准通用型故障诊断仪:Q-OBD
  13. kubeadm 安装 k8s 集群
  14. Minio Utils
  15. world分节及分节首页分节页码总页码设置方法
  16. Ubuntu 10.10 安装谷歌拼音输入法~
  17. Unity游戏开发客户端面经——设计模式(初级)
  18. websocket-php
  19. Android视频资源下载链接
  20. asp.net网站服务器,vs2010制作简单的asp.net网站

热门文章

  1. 天空盒六面图片+左右眼3D全景图片
  2. 阿里百川的用户反馈(Android)
  3. 安卓端使用MT终端管理器crontab设置定时任务
  4. 用计算机研究脑电波,超现实主义 用脑电波控制计算机设备
  5. 大道至简大巧不工——和田玉雕中的哲学
  6. 手机移动端WEB资源整合
  7. 表格页面html代码怎么写,设置表格标题的html的代码怎么写
  8. h5在线制作平台h5案例分享
  9. 把内存中的数据传送到计算机硬盘称为,将内存中的数据传送到计算机硬盘的过程称为什么...
  10. 3月最新HP库存备件信息-广州励康