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);
        }
  • 相关阅读:
    luogu P1833 樱花 看成混合背包
    luogu P1077 摆花 基础记数dp
    luogu P1095 守望者的逃离 经典dp
    Even Subset Sum Problem CodeForces
    Maximum White Subtree CodeForces
    Sleeping Schedule CodeForces
    Bombs CodeForces
    病毒侵袭持续中 HDU
    病毒侵袭 HDU
    Educational Codeforces Round 35 (Rated for Div. 2)
  • 原文地址:https://www.cnblogs.com/tyzl/p/5452855.html
Copyright © 2011-2022 走看看