广告
返回顶部
首页 > 资讯 > 移动开发 >Android动画
  • 303
分享到

Android动画

Android 2022-06-06 13:06:54 303人浏览 泡泡鱼
摘要

源码地址: https://download.csdn.net/download/dreams_deng/12236355 1. 理论知识 1.1 动画类型: View动画 :

源码地址: https://download.csdn.net/download/dreams_deng/12236355

1. 理论知识

1.1 动画类型:
View动画 :   View本身在动
Drawable动画:  View中内容在动,帧动画,图片在切换
 1.2.Android实现动画方式:
 编码方式
 xml方式

1.3. 动画api :

    scaleAnimation1.setStartOffset(1000);  // 动画延迟时间
    scaleAnimation1.setDuration(10000);   // 持续时间
    scaleAnimation1.setFillBefore(true);  // 最终状态
     img_context.startAnimation(scaleAnimation1);  // 启动动画
     translateAnimation.setRepeatCount(3); //重复次数动画
      translateAnimation.setInterpolator  // 设置动画变化率
      animationSet.setAnimationListener  // 设置动画监听回调

  2. 动画实现

2.1.1.代码实现缩放动画

//锚点位置: 默认位置视图中心点
        // 动画执行效果,1.图形变成原来的0.5倍宽高,2.延迟 1S ,3. 然后开始执行动画 10S 到1.5倍, 执行完毕,恢复默认1.0倍默认大小,4.动画执行中心点设置后面的4个参数都是
      // 动画中心点坐标,缩放中心点坐标:
        // Animation.RELATIVE_TO_SELF  0.5  现对于自己宽度0.5宽度的位置  中心点 X
       // Animation.RELATIVE_TO_PARENT   0.5  现对于父元素的0.5宽度的位置 中心点 X
        //  如何使用,原来的大小不用动 fromX , fromY


public void codeScale(View view) {
        
        // 相对于自己,绝对值
        ScaleAnimation scaleAnimation1=new ScaleAnimation(0.5f,1.5f,0.5f,1.5f,Animation.ABSOLUTE,img_context.getWidth()/2,
                Animation.ABSOLUTE,0);
        // 现对于自己,中心点
        ScaleAnimation scaleAnimation2=new ScaleAnimation(0.5f,1.5f,0.5f,1.5f,Animation.RELATIVE_TO_SELF,0.5f,
                Animation.RELATIVE_TO_SELF,0.5f);
        // 延迟1s开始
        scaleAnimation1.setStartOffset(1000);
      // 持续时间
        scaleAnimation1.setDuration(10000);
        // 最终还原
        scaleAnimation1.setFillBefore(true);
        // 启动动画
        img_context.startAnimation(scaleAnimation1);
        //锚点位置: 默认位置视图中心点
        // 动画执行效果,图形变成原来的0.5倍宽高,延迟 1S , 然后开始执行动画 10S 到1.5s, 执行完毕,恢复默认1.0
      // 动画中心点坐标,缩放中心点坐标:
        // Animation.RELATIVE_TO_SELF  0.5  现对于自己宽度0.5宽度的位置  中心点 X
       // Animation.RELATIVE_TO_PARENT   0.5  现对于父元素的0.5宽度的位置 中心点 X
        //  如何使用,原来的大小不用动 fromX , fromY
    }

  2.1.2  xml实现缩放动画:/res/anim/scale1.xml



   
    
   public void xmlScale(View view) {
       Animation animation= AnimationUtils.loadAnimation(this,R.anim.scale1);
        img_context.startAnimation(animation);
    }

2.2.1  实现旋转动画:


 //    旋转动画  ,  0度旋转到90度,旋转点是图形中心点
        RotateAnimation rotateAnimation=new RotateAnimation(0f,90.0f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
        rotateAnimation.setDuration(5000);
        img_context.startAnimation(rotateAnimation);

  /res/anim/rotate_test.xml 代码实现:




    // 默认旋转点是左上角, xml实现
        Animation animation= AnimationUtils.loadAnimation(this,R.anim.rotate_test);
//        img_context.startAnimation(animation);

2.3.1. 实现透明度动画:   从显示到隐藏,


        // 透明度动画
        // 不透明度1  透明度0 不透明
        // 不透明度0  透明度1 透明
        AlphaAnimation alphaAnimation=new AlphaAnimation(1,0);
        alphaAnimation.setDuration(5000);
        img_context.startAnimation(alphaAnimation)

  /res/anim/alpha_test.xml 代码实现:




        // 透明度动画, 从显示到隐藏
        animation= AnimationUtils.loadAnimation(this,R.anim.alpha_test);
        img_context.startAnimation(animation);ation);

2.4.1. 实现移动动画:



        TranslateAnimation translateAnimation = new TranslateAnimation(Animation.ABSOLUTE, 0,
                Animation.RELATIVE_TO_SELF, 1,
                Animation.ABSOLUTE, 0,
                Animation.RELATIVE_TO_SELF, 1);
        translateAnimation.setDuration(5000);
        translateAnimation.setRepeatCount(3); //重复次数动画
        // Animation.INFINITE) 无限次数
        // 设置动画变化率
        
        translateAnimation.setInterpolator(new AccelerateInterpolator());
        img_context.startAnimation(translateAnimation);

        /res/anim/translate_test.xml 代码实现:



    

       animation= AnimationUtils.loadAnimation(this,R.anim.translate_test);
        img_context.startAnimation(animation);

        3. 综合动画,
      1.1.多个动画同时执行  AnimationSet
      1.1. 如果动画逐个执行,那么设置动画延时,执行第一个完毕,才执行第二个alphaAnimation.setStartOffset(2000);


  public void  codeSetAnimation(View view){
   // 透明度 从 透明到不透明    持续 2s  接着进行旋转360 持续1s
         AlphaAnimation alphaAnimation=new AlphaAnimation(1,0);
         alphaAnimation.setDuration(2000);
         alphaAnimation.setStartOffset(2000); // 设置延时,避免动画同时执行
         RotateAnimation rotateAnimation=new RotateAnimation(0f,360f,
                 Animation.RELATIVE_TO_SELF,0.5f,
                 Animation.RELATIVE_TO_SELF,0.5f
         );
         rotateAnimation.setDuration(1000);
        AnimationSet animationSet=new AnimationSet(true);
        animationSet.addAnimation(alphaAnimation);
        animationSet.addAnimation(rotateAnimation);
        animationSet.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
            }
            @Override
            public void onAnimationEnd(Animation animation) {
            }
            @Override
            public void onAnimationRepeat(Animation animation) {
     // 动画重复
            }
        });
        img_context.startAnimation(animationSet);
    }

 /res/anim/set_test.xml 代码实现:





 public void xmlSetAnimation(View view){
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.set_test);
        //3. 启动动画
        img_context.startAnimation(animation);
    }

  4.  帧动画 : 

1. /res/drawable/drawable_animation_test.xml  设置图片播放顺序



    

2.  设置图片播放控件:android:background


  
3.  播放帧动画、停止帧动画

 // 启动停止帧动画
   public void  imgAnimation(View view){
        AnimationDrawable animationDrawable= (AnimationDrawable) donghuaimg.getBackground();
        if(animationDrawable.isRunning()){
            animationDrawable.stop();
        }else{
            animationDrawable.start();
        }
    }

 效果图:

4. Android实现转场动画: 

实现原理图:

   实现代码逻辑:

1.  MainActivity界面功能按钮:


   // 当前界面下一个界面
    public void nextPage(View view) {
        startActivity(new Intent(MainActivity.this,SecondActivity.class));
        // 右边进来动画 right_in
        // 当前界面出去动画:left_out
 // 让动画起效果函数
        overridePendingTransition(R.anim.right_in, R.anim.left_out);
    }

/res/drawable/right_in.xml



    

/res/drawable/right_out.xml



2.  SecondActivity 关闭返回


 public void back(View view){
        finish();
        // 进来动画,右边动画进来
        // 当前界面出去
        overridePendingTransition(R.anim.left_in, R.anim.right_out);
    }

/res/drawable/left_in.xml



/res/drawable/right_out.xml



效果图:

5. 动画案例, APIDemos总demo , 点击实现EditText实现左右抖动

5.1. 布局:


  

5.2. Java 代码:


    public void back(View view){
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.shake);
        et_main_name.startAnimation(animation);
    }

/res/anim/shake.xml




/res/anim/cycle_8.xml   抖动次数





作者:小置同学


--结束END--

本文标题: Android动画

本文链接: https://www.lsjlt.com/news/29077.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android动画-属性动画
    属性动画 所谓属性动画,就是改变对象Object的属性来实现动画过程。属性动画是对View的动画的扩展,通过它可以实现更多漂亮的动画效果。同时属...
    99+
    2022-06-06
    属性 Android
  • Android动画
    源码地址: https://download.csdn.net/download/dreams_deng/12236355 1. 理论知识 1.1 动画类型: View动画 :...
    99+
    2022-06-06
    Android
  • Android 动画(View动画,帧动画,属性动画)详细介绍
    0. 前言  Android动画是面试的时候经常被问到的话题。我们都知道Android动画分为三类:View动画、帧动画和属性动画。 先对这三种动画做一个概述:...
    99+
    2022-06-06
    view 属性 动画 Android
  • Android动画探索之属性动画
    这篇文章来总结下属性动画,通过下面几点来了解下属性动画的内容: 属性动画概述 属性动画工作原理 ValueAnimator ObjectAnim...
    99+
    2022-06-06
    属性 Android
  • Android开机动画
    Android开机动画 1、BootLoader开机图片2、Kernel开机图片3、系统启动时(BootAnimation)动画3.1 bootanimation.zip位置3.2 boota...
    99+
    2023-09-18
    Android BootAnimation
  • Android属性动画
    关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、常用API3.1 Valu...
    99+
    2023-12-22
    android nginx 运维
  • Android 动画之帧动画用法详解
    本文目录帧动画概念帧动画实现方法1:xml实现帧动画第一步:导入帧动画素材第二步:创建帧动画文件第三步:布局文件和Activity方法2:用Ja...
    99+
    2022-06-06
    动画 Android
  • Android帧动画、补间动画、属性动画用法详解
    在安卓开发中,经常会使用到一些动画,那么在开发中,如何使用这些动画呢? 帧动画:不是针对View做出一些形状上的变化,而是用于播放一张张的图片,例如一些开机动画,类似于电影播放...
    99+
    2022-06-06
    属性 补间动画 动画 Android
  • android 帧动画,补间动画,属性动画的简单总结
    帧动画——FrameAnimation 将一系列图片有序播放,形成动画的效果。其本质是一个Drawable,是一系列图片的集合,本身可以当做一个图片一样使用 在Drawable...
    99+
    2022-06-06
    属性 补间动画 动画 Android
  • Android动画学习笔记之补间动画
    本文实例为大家分享了Android补间动画展示的具体代码,供大家参考,具体内容如下 首先看看补间动画的共同属性: Duration:动画持续的时间(单位:毫秒) &n...
    99+
    2022-06-06
    学习笔记 学习 补间动画 Android
  • Android动画(四)动画框架源码分析
    本篇难度较大,慎入 也许可以先去看总结在来一起分析 从我们写的开始进入: fun click(view: View) { va...
    99+
    2022-06-06
    源码 框架 Android
  • Android之 动画总结
    一 动画种类 1 动画在Android中运用也非常广泛,如点击按钮,加载框,Activity的转场等都有动画的身影 2 常用的动画有以下以下几种 逐帧动画【Frame Animation】,即顺序播放事先准备的图片 补间动画【Tween A...
    99+
    2023-09-27
    android 动画
  • android的三种动画
    1.view animation  视图动画(补间动画) 只能被用来设置View的动画。 可以使用xml或者java 代码进行实现 xml放在 res/anim/ 下 android:duration 动画持续时间,以毫秒为单位 and...
    99+
    2023-08-31
    android 动画
  • Android动画全篇系列(十二)——ViewPager滑动动画
    文章目录一、前言二、实现1、参数的介绍2、实现三、ViewPager2四、小结 一、前言 ViewPager的作用很多,一般会结合Fragmen...
    99+
    2022-06-06
    viewpager Android
  • Android动画 实现开关按钮动画(属性动画之平移动画)实例代码
    Android动画 实现开关按钮动画(属性动画之平移动画),最近做项目,根据项目需求,有一个这样的功能,实现类似开关的动画效果,经过自己琢磨及上网查找资料,终于解决了,这里就记...
    99+
    2022-06-06
    开关 属性 按钮 Android
  • Android仿荷包APP启动动画
    用荷包App的时候发现启动动画做的挺好玩的,于是便模仿实现了一下。 gif效果图: animation.gif 实现思路: 仔细观察,可以看出动画的执行分为两个阶段: ...
    99+
    2022-06-06
    app启动 app 动画 Android
  • Android Studio实现帧动画
    本文实例为大家分享了Android Studio实现帧动画的具体代码,供大家参考,具体内容如下 按一定的顺序播放静态的图片 1、几张联系的图片 2、一个图片资源管理布局文件:car...
    99+
    2022-11-12
  • Android切换动画之ViewPager
      有过开发经验的程序员都知道这个效果,是当我们第一次安装一个软件时有一个使用说明的图片切换效果,他是如何实现的呢?我们一起学习一下吧,难度系数1.0,是只要你仔细分析,都...
    99+
    2022-06-06
    viewpager 动画 Android
  • Android实现气泡动画
    本文实例为大家分享了Android实现气泡动画的具体代码,供大家参考,具体内容如下 一、前言 本来想做一个类似window气泡屏保的动画效果。 奈何小球间的非对心碰撞公式没研究出来,...
    99+
    2022-11-12
  • Android实现透明动画
    本文实例为大家分享了Android实现透明动画的具体代码,供大家参考,具体内容如下 首页是有一个 Activity public class AlphaAnimationActi...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作