• 25动画的小结


    Android中的动画 Animation

    一,Frame Animation 帧动画
    每一张静止的图片 依次展示出来 利用人眼的错觉 形成动画

    XML 步骤:
         * 1,在res/drawable获取xml的Frame 动画<animation-list>  </>
         * 2,在xml中  添加item  drawable:每一帧动画的图片    duration:每一帧显示的时间
         * 3,在layout布局中  给ImagView 设置成背景图片
         * 4,在逻辑代码获取动画  管理动画
    Java 步骤:
        1,获取AnimationDrawable对象
        2,AnimationDrawable添加动画视图
        3,动画设置给图片控件
    

    二,Tween Animation 补间动画 设置开始 和结束的动画 中间部分 由系统补齐
    主要有:alpha(透明度),scale(缩放),rotate(旋转),translate(位移)
    XML步骤:
    1,在res创建一个文件夹anim
    2,在anim文件夹 添加动画
    3, iv.startAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.anim_alpha));

    JAVA步骤:
        1,创建动画对象 
        2,给动画对象设置属性
        3,开启动画
    
    
    
        Animation rotate = new RotateAnimation(0,720,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
        Animation alpha = new AlphaAnimation(1.0f,0.0f);
    
        //  true  使用的是set默认的插值器
        //  false 使用自身动画的插值器
        AnimationSet animationSet = new AnimationSet(false);
    
        //添加动画到集合
        animationSet.addAnimation(rotate);
        animationSet.addAnimation(alpha);
    
        //设置动画时间
        animationSet.setDuration(3000);
    
        //启动动画
        iv.startAnimation(animationSet);
    

    三,Property Animation 属性动画 3.0以后才有的 是补间动画的加强般
    属性动画指明任何动画

    1,XML步骤:
        1,在res创建animtor文件夹 
        2,在animtor文件夹添加动画xml
        3, 使用动画填充器  将xml布局的动画添加进来
                Animator animator = AnimatorInflater.loadAnimator(MainActivity.this,R.animator.background_object);
                animator.setTarget(iv);//设置操作对象
                animator.start();
    2,Java步骤:
        1,创建动画对象
        2,设置时间
        3,开启动画
    
    
        //获取属性动画的集合对象
                AnimatorSet animatorSet = new AnimatorSet();
    
                ObjectAnimator translateY = ObjectAnimator.ofFloat(iv,"translationY",0,200,100,300);
                translateY.setDuration(3000);
    
                ObjectAnimator rotateY = ObjectAnimator.ofFloat(iv,"rotation",0,-720,720);
                rotateY.setDuration(3000);
    
                //第一种方式  执行   note:同一个动画只能执行一次   play(),with(),before(),after()
    

    // animatorSet.play(translateY).with(rotateY);
    // animatorSet.start();

                //第二种方式
                List<Animator> list = new ArrayList<>();
                list.add(translateY);
                list.add(rotateY);
               // animatorSet.playTogether(list);//同步执行
                animatorSet.playSequentially(list);//依次执行
    
                animatorSet.start();
    
  • 相关阅读:
    文件恢复工具Recuva安装与使用
    卸载工具Geek安装与使用(超全面)
    聚类总结
    Github访问加速
    机器学习常用网站(大牛推荐)
    知识表示之框架表示法
    知识表示之产生式表示法
    知识表示之一阶谓词逻辑表示
    ubuntu下如何解压zip文件(超详细)
    常用学习网站及资料(经常逛)
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152173.html
Copyright © 2020-2023  润新知