zoukankan      html  css  js  c++  java
  • 动画的实现

    1、帧动画  -->  多张图片快速播放,形成动画效果 【FrameAnimation】
        用于耗时操作,默认一帧5ms
    2、ImageView 既可以用 src 【设置内容】和 background【设置背景】
    3、补间动画 -->【TweenAnimation】 为了让对象从初始状态向结束状态改变的过程更加自然而自动生成的动画效果
        AttributeSet 是系统调用的
    4、属性动画 --> 【PropertyAnimation】属性动画是真正改变对象的某个属性的值, 补间动画,只是一个动画效果,组件其实还在原来的位置上,xy没有改变
        都是ObjectAnimator,不像补间动画动画一样,每个特性特定的方法
        --> 因为属性动画是真正改变对象的某个属性的值,所以动画播放完后不会复位 
        --> 单个属性动画一次只能改变单个属性
        --> 连续点击四个按钮也可以实现一起飞
    5、
         //移动
        public void translate(View v) {
            //定义位移补间动画
            //组件的初始坐标移动到+10的位置,结束为组件的初始坐标+100
    //        TranslateAnimation ta = new TranslateAnimation(10, 300, 0, 0);
            ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, -1.5f, Animation.RELATIVE_TO_SELF, 1.5f
                    , Animation.RELATIVE_TO_SELF, -2, Animation.RELATIVE_TO_SELF, 2);
            //定义动画持续时间
            ta.setDuration(2000);
            //设置重复次数
            ta.setRepeatCount(1);
            //设置重复模式
            ta.setRepeatMode(Animation.REVERSE);
            //在结束位置填充动画
            ta.setFillAfter(true);
            //播放动画
            iv.startAnimation(ta);
        }
     
        //缩放
        public void scale(View v) {
    //        ScaleAnimation sa = new ScaleAnimation(0.2f, 2, 0.2f,2);
    //        ScaleAnimation sa = new ScaleAnimation(0.2f, 2, 0.2f,2,iv.getWidth()/2, iv.getHeight()/2);
            sa = new ScaleAnimation(0.3f, 2, 0.2f,1,
                    Animation.RELATIVE_TO_PARENT,0.5f,Animation.RELATIVE_TO_PARENT,0.5f);
            //定义动画持续时间
            sa.setDuration(2000);
            //设置重复次数
            sa.setRepeatCount(1);
            //设置重复模式
            sa.setRepeatMode(Animation.REVERSE);
            //在结束位置填充动画
            sa.setFillAfter(true);
            //播放动画
            iv.startAnimation(sa);
        }
     
        //透明
        public void alpha(View v){
            aa = new AlphaAnimation(1,0.2f);
            //定义动画持续时间
            aa.setDuration(2000);
            //设置重复次数
            aa.setRepeatCount(1);
            //设置重复模式
            aa.setRepeatMode(Animation.REVERSE);
            //在结束位置填充动画
            aa.setFillAfter(true);
            //播放动画
            iv.startAnimation(aa);
        }
     
        //旋转
        public void rotate(View v){
    //        RotateAnimation ra = new RotateAnimation(45,315);
    //        RotateAnimation ra = new RotateAnimation(45, 315,iv.getWidth()/2,iv.getHeight()/2);
            ra = new RotateAnimation(45, -315,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
            //定义动画持续时间
            ra.setDuration(2000);
            //设置重复次数
            ra.setRepeatCount(1);
            //设置重复模式
            ra.setRepeatMode(Animation.REVERSE);
            //在结束位置填充动画
            ra.setFillAfter(true);
            //播放动画
            iv.startAnimation(ra);
        }
  • 相关阅读:
    docker构建镜像
    SpringBoot 配置的加载
    Gradle实战(02)--Gradle Build的创建
    Gradle实战(01)--介绍与安装
    统计最常用10个命令的脚本
    jackson序列化与反序列化的应用实践
    go http请求流程分析
    java线程的3种实现方式及线程池
    git多账号使用
    java多版本管理
  • 原文地址:https://www.cnblogs.com/tyzl/p/5452855.html
Copyright © 2011-2022 走看看