• Android动画 Animation


    前言

    Android的动画可以分为三种,View动画,帧动画,属性动画。其中帧动画其实也属于View动画。

    View动画通过对场景的对象不断做图像变换,如平移,缩放,旋转,透明度而产生动画效果。

    帧动画通过顺序播放一系列图像而产生动画效果

    属性动画通过动态改变对象属性而达到动画效果

    View动画

    View动画支持四种效果:平移,缩放,旋转,透明度动画。

    View动画效果对应四个子类:TranslateAnimation、ScaleAnimation、RotateAnimation、AlphaAnimation。

    动画可以通过xml定义,也可以通过代码创建。他们对应的xml标签为

    名称   标签
    平移   <translate>
    缩放   <scale>
    旋转

      <rotate>

    透明度   <alpha>

    下面我们看这四个效果对应的XML

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:shareInterpolator="true"
        android:fillAfter="false"
        >
    
    <!--    透明度起始值和结束值-->
        <alpha
            android:duration="1000"
            android:fromAlpha="0"
            android:toAlpha="1"
            />
    
    
    <!--    缩放动画,from和to表示起始值和结束值,pivot为轴点-->
        <scale
            android:duration="400"
            android:fromXScale="0"
            android:fromYScale="0"
            android:toXScale="1"
            android:toYScale="1"
            android:pivotX="0"
            android:pivotY="0"
            />
    
    <!--    旋转开始和结束的角度,轴点-->
        <rotate
            android:duration="400"
            android:fromDegrees="0"
            android:toDegrees="360"
            android:pivotY="0"
            android:pivotX="0"
            />
    
    <!--    平移动画,from和to表示起始值和结束值-->
        <translate
            android:duration="400"
            android:fromXDelta="0"
            android:fromYDelta="0"
            android:toXDelta="300"
            android:toYDelta="300"
            />
    
    </set>

    其中interpolator表示动画速度插值器,fillAfter表示动画结束后View是否停留在结束位置,shareInterpolator表示子集是否使用父集合的插值器,duration表示持续时间,单位ms。

    动画的应用参考以下代码

    		Button button = new Button(this);
    		button.setText("Animation start");
    		button.setOnClickListener(new View.OnClickListener() {
    			@Override
    			public void onClick(View v) {
    				Animation animation = AnimationUtils.loadAnimation(AnimationTest.this,R.anim.test);
    				button.startAnimation(animation);
    			}
    		});
    		RelativeLayout relativeLayout = findViewById(R.id.AA_lo);
    		relativeLayout.addView(button);
  • 相关阅读:
    android systembar tabletUI
    linux mv
    修改framework/base下面的api要注意要修改的地方
    git 从远程主服务器当中创建新分支
    修改android framework 添加service
    DUILIB 界面基本知识
    Duilib vlc c++ 字符编码
    android 应用APK使用系统APK
    linux 查找文件内容及文件
    修改android 开机动画
  • 原文地址:https://www.cnblogs.com/MiraculousB/p/16501947.html
Copyright © 2020-2023  润新知