zoukankan      html  css  js  c++  java
  • 安卓动画基础讲解


    //逐帧动画
    /**
    * 1.加入单张图片
    * 2.生成movie.xml整个图片
    * 3.代码中使用图片movie.xml
    */
    iv=(ImageView) findViewById(R.id.iv);
    // iv.setImageResource(R.drawable.movie);//为iv加载六张图片
    // AnimationDrawable ad=(AnimationDrawable) iv.getDrawable();//得到图片给动画图片
    // ad.start();

    DisplayMetrics dm = new DisplayMetrics();
    getWindow().getWindowManager().getDefaultDisplay().getMetrics(dm);
    int width = dm.widthPixels;//得到屏幕宽度

    //补间动画,平移
    //1.通过代码直接写
    // Animation translate=new TranslateAnimation(0, width, 0, 0);
    // translate.setDuration(2000);
    // translate.setFillAfter(true);//动画完成后,留在原位

    // translate.setRepeatCount(2);//重复2次
    // translate.setStartOffset(1000);//等待1秒后再动

    // iv.startAnimation(translate);

    //2.调用xml文件
    Animation translate=AnimationUtils.loadAnimation(this, R.anim.push_to_right);
    iv.startAnimation(translate);
    //iv.setAnimation(translate);也行

    //动画监听事件
    translate.setAnimationListener(new AnimationListener() {

    @Override
    public void onAnimationStart(Animation animation) {

    }

    @Override
    public void onAnimationRepeat(Animation animation) {

    }

    @Override
    public void onAnimationEnd(Animation animation) {
    Intent intent=new Intent(MainActivity.this,SecondAty.class);
    startActivity(intent);
    finish();

    }
    });

    }

    // 旋转动画
    // 角度从0到360,pivotXType取谁的X值(界面的?就自身这个图片) pivotYType
    // Animation rotator = new RotateAnimation(0, 360,
    // RotateAnimation.RELATIVE_TO_SELF, 0.5f,
    // RotateAnimation.RELATIVE_TO_SELF, 0.5f);
    // rotator.setDuration(3000);
    // rotator.setFillAfter(true);
    // iv.startAnimation(rotator);

    // 渐变
    // Animation alpha = new AlphaAnimation(0, 0.9f);//从看不见到看到90%
    // alpha.setDuration(3000);
    // alpha.setFillAfter(true);
    // iv.startAnimation(alpha);

    // 拉伸
    // fromX, toX, fromY, toY平移动画的四个参数,x轴伸缩尺寸,y轴伸缩尺寸
    //ScaleAnimation.RELATIVE_TO_SELF, 3f//X轴坐标是自己图片宽度的3倍
    Animation scale = new ScaleAnimation(0, 0.3f, 0, 0.5f,
    ScaleAnimation.RELATIVE_TO_SELF, 3f,
    ScaleAnimation.RELATIVE_TO_SELF, 3f);
    scale.setDuration(3000);
    scale.setFillAfter(true);
    iv.startAnimation(scale);

  • 相关阅读:
    C++ 运行时类型识别 知道实例父类类型,显示出子类类型
    C++里面方便的打印日志到文件
    vs2015上配置Armadillo+openBlas
    opencl 在vs2015上遇见的问题
    Lucene子项目------------------Solr遇到的问题
    [LeetCode]Course Schedule
    [LeetCode]Minimum Size Subarray Sum
    [LeetCode]Reverse Linked List
    [LeetCode]Isomorphic Strings
    [LeetCode]Ugly Number
  • 原文地址:https://www.cnblogs.com/wangfeng520/p/5105015.html
Copyright © 2011-2022 走看看