四种补间动画:

  1、透明;

  2、缩放;

  3、位移;

  4、旋转;

 //点击按钮 实现iv 透明的效果  动画
     public void click1(View v) {
         //1.0意味着着完全不透明 0.0意味着完全透明
         AlphaAnimation aa = new AlphaAnimation(1.0f, 0.0f);
         aa.setDuration(2000); //设置动画执行的时间
         aa.setRepeatCount(1); //设置重复的次数
         aa.setRepeatMode(Animation.REVERSE);//设置动画执行的模式
         //iv开始执行动画
         iv.startAnimation(aa);

     }

     //点击按钮 实现iv 执行一个旋转 动画
     public void click2(View v) {
         //fromDegrees 开始角度   toDegrees 结束角度
 //        RotateAnimation  ra = new RotateAnimation(0, 360);
         RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
         ra.setDuration(2000); //设置动画执行的时间
         ra.setRepeatCount(1); //设置重复的次数
         ra.setRepeatMode(Animation.REVERSE);//设置动画执行的模式
         //iv开始执行动画
         iv.startAnimation(ra);

     }

     //点击按钮进行一个缩放动画
     public void click3(View v) {
         ScaleAnimation sa = new ScaleAnimation(1.0f,2.0f, 1.0f, 2.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
         sa.setDuration(2000); //设置动画执行的时间
         sa.setRepeatCount(1); //设置重复的次数
         sa.setRepeatMode(Animation.REVERSE);//设置动画执行的模式
         //iv开始执行动画
         iv.startAnimation(sa);
     }

     //位移动画
     public void click4(View v){
         TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0.2f);
          ta.setDuration(2000); //设置动画执行的时间
          ta.setFillAfter(true);//当动画结束后 动画停留在结束位置

          //开始动画
          iv.startAnimation(ta);
     }

     //动画一起飞
     public void click5(View v){
         AnimationSet set = new AnimationSet(false);

         //透明动画
         AlphaAnimation aa = new AlphaAnimation(1.0f, 0.0f);
         aa.setDuration(2000); //设置动画执行的时间
         aa.setRepeatCount(1); //设置重复的次数
         aa.setRepeatMode(Animation.REVERSE);//设置动画执行的模式
         //旋转动画
         RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
         ra.setDuration(2000); //设置动画执行的时间
         ra.setRepeatCount(1); //设置重复的次数
         ra.setRepeatMode(Animation.REVERSE);//设置动画执行的模式
         //缩放
         ScaleAnimation sa = new ScaleAnimation(1.0f,2.0f, 1.0f, 2.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
         sa.setDuration(2000); //设置动画执行的时间
         sa.setRepeatCount(1); //设置重复的次数
         sa.setRepeatMode(Animation.REVERSE);//设置动画执行的模式

         TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0.2f);
          ta.setDuration(2000); //设置动画执行的时间
          ta.setFillAfter(true);//当动画结束后 动画停留在结束位置

         //添加动画
         set.addAnimation(aa);
         set.addAnimation(ra);
         set.addAnimation(sa);
         set.addAnimation(ta);

         //最后一步 要记得 执行动画
         iv.startAnimation(set);
     }

几个属性介绍:

 1、Duration:设置动画执行的时间;

 2、RepeatCount:动画的重复次数,如果要无限次播放,填写一个小于0的数,一般写-1;

 3、fillAfter:动画结束之后是否保持动画的最终状态;true,表示保持动画的最终状态

4、fillBefore:动画结束之后是否保持动画开始前的状态;true,表示恢复到动画开始前的状态

5、startOffset:动画的延迟时长,单位是毫秒

6、RepeatMode:动画的执行模式:

  • reverse:动画是从一开始的1.0渐变成0.3,然后在从0.3渐变为1.0,重复往返
  • restart:冻哈是从一开始的1.0渐变成0.3,然后图片从0.3突变为1.0,然后在渐变成0.3,重复往返,

XML定义补间动画:

透明:

 <alpha
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:fromAlpha="1.0"
     android:toAlpha="0.0"
     android:duration="200"
     android:repeatMode="reverse"
     android:repeatCount="2">
 </alpha>

旋转:

 <rotate
     android:fromDegrees="0"
     android:toDegrees="360"
     android:pivotX="50%"
     android:pivotY="50%"
     android:repeatCount="1"
     android:repeatMode="reverse"
     android:duration="2000"
     xmlns:android="http://schemas.android.com/apk/res/android">
 </rotate>

缩放:

 <scale
     android:fromXScale="1.0"
     android:toXScale="2.0"
     android:fromYScale="1.0"
     android:toYScale="2.0"
     android:pivotX="50%"
     android:pivotY="50%"
     android:repeatMode="reverse"
     android:repeatCount="1"
     android:duration="2000"
     xmlns:android="http://schemas.android.com/apk/res/android">
 </scale>

位移:

 <translate
     android:fromXDelta="0%p"
     android:toXDelta="0%p"
     android:fromYDelta="0%p"
     android:toYDelta="20%p"
     android:fillAfter="true"
     android:duration="2000"
     xmlns:android="http://schemas.android.com/apk/res/android">
 </translate>

实现XML动画:

 public void click1(View v) {
         Animation aa = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.alpha);
         //iv开始执行动画
         iv.startAnimation(aa);
     }

Android开发之补间动画、XML方式定义补间动画的更多相关文章

  1. 使用xml方式定义补间动画

    在res下创建一个目录 anim目录 public class MainActivity extends Activity { private ImageView iv; @Override prot ...

  2. Android开发——弹性滑动的两种实现方式

    0. 前言   欢迎转载,转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52538723 我们在Android开发--View滑动的三 ...

  3. Android开发学习---使用XmlPullParser解析xml文件

    Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将 ...

  4. Android开发之使用DefaultHandler处理XML数据

    一.定义规则 XML数据结构定义 请记住上面的定义,后面我会用“标签开始”.“文本”.“标签结束”表示SAX正在处理哪部分XML数据 事件模型 为什么这里我要谈到这个,因为SAX处理XML数据是采用事 ...

  5. Spring的AOP开发(基于AspectJ的XML方式)

    Spring的AOP的简介: AOP思想最早是由AOP联盟组织提出的.Spring是使用这种思想最好的框架 Spring的AOP有自己实现的方式(非常繁琐). Aspect是一个AOP的框架, Spr ...

  6. Android开发更新UI的几种方式

    1.runOnUiThread 2.handler post 3.handler sendmessage 4.view post xml布局文件: <RelativeLayout xmlns:a ...

  7. Android开发 - 更"聪明"的申请权限方式

    在Android6.0以后,很多权限需要动态申请,只有在用户点同意后,我们才能使用对应API,因此,正确申请权限就显得很重要. 常用方式 通常我们使用这种方式来判断权限状态: private stat ...

  8. 【Android开发】Android6.0请求权限方式

    记录一下最普通的动态请求权限的方法: private int requestCode == 123; //判断当前系统的版本 if(Build.VERSION.SDK_INT >= 23){ i ...

  9. Android开发 ---基本UI组件6 :只定义一个listView组件,然后通过BaseAdapter适配器根据数据的多少自行添加多个ListView显示数据

    效果图: 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?> ...

随机推荐

  1. 烂泥:apache虚拟主机的学习与应用

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 要配置apache的虚拟主机,我们需要分以下几步进行: 1. 检查apache虚拟主机模块 2. 开启apache虚拟主机功能 3. httpd-vho ...

  2. 烂泥:【解决】修改LVM卷组名重启系统后,无法进入进入系统

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 一台服务器系统已经安装完毕,但是LVM的卷组vg使用的是默认的VolGroup名称,使用起来感觉不舒服,打算把这个卷组名称修改为vg. 先来查看系统中有 ...

  3. (转)Yii的组件机制之一:组件基础类CComponent分析

    Yii的组件机制 组件机制,是Yii整个体系的思想精髓,在使用Yii之前,最应该先了解其组件机制,如果不了解这个机制,那么阅读Yii源代码会非常吃力.组件机制给Yii框架赋予了无穷的灵活性和可扩展性, ...

  4. JavaScript选项卡/页签/Tab的实现

    选项卡,也称页签,英文用Tab(Module-Tabs)表示.Tab将不同的内容重叠放在一个布局块内,重叠的内容区里每次只有其中一个是可见的. Tab可以在相同的空间里展示更多的信息,它把相似的主题分 ...

  5. 折半算法的C#实现方式-递归和非递归

    这个算法,相信大家都懂,但是不真正的手动写一遍,总觉得不得劲.这不,手动写一遍就是有不一样的效果出现了. 往左折半,还是往右走比较简单,其实这两个算法最关键的是:退出条件 min > max   ...

  6. MMORPG大型游戏设计与开发(客户端架构 part3 of vegine)

    无论在何处在什么地方,我们都或多或少的接触到数学知识.特别是在客户端中,从打开界面的那一刻起就有太多与数学扯上的关联,如打开窗口的大小,窗口的位置,窗口里面的元件对象,以及UI的坐标等等.而在进入游戏 ...

  7. 使用ZeroNet搭建P2P全球网站

    软件 ZeroNet是一个利用比特币加密和BT技术提供不受审查的网络与通信的BT平台,ZeroNet网络功能已经得到完整的种子的支持和加密连接,保证用户通信和文件共享的安全.使用ZeroNet,你可以 ...

  8. ac自动机 模板

    自己写的0.0 #include <queue> #include <cstring> #include <cstdio> using namespace std; ...

  9. fiddler和xampp安装成功后,网站打不开的原因

    fiddler和xampp安装成功后,网站打不开,出现403的错误 解决办法 编辑httpd.conf文件注释掉以下代码 #AllowOverride none # Require all denie ...

  10. ubuntu下crontab编辑方法的设定

    在ubuntu下,首次编辑crontab计划任务的时候,会提示让选择编辑器.由于对nano编辑器不是很熟悉,若是选择nova编辑的话,会有些麻烦.可以重置编辑器,方法如下:[root@wang ~]# ...