View动画-补间动画

  • View动画的四种变换效果对应着Animation的四个子类:TranslateAnimation、ScaleAnimation、RotateAnimation和AlphaAnimation,如表7-1所示。这四种动画既可以通过XML来定义,也可以通过代码来动态创建,对于View动画来说,建议采用XML来定义动画,这是因为XML格式的动画可读性更好。
  • 要使用View动画,首先要创建动画的XML文件,这个文件的路径为:res/anim/filename.xml。View动画的描述文件是有固定的语法的
    View动画-补间动画_第1张图片View动画-补间动画_第2张图片




    

    

    
    
    
        ...
    


从上面的语法可以看出,View动画既可以是单个动画,也可以由一系列动画组成。标签表示动画集合,对应AnimationSet类,它可以包含若干个动画,并且它的内部也是可以嵌套其他动画集合的

  • android:interpolator
    表示动画集合所采用的插值器,插值器影响动画的速度,比如非匀速动画就需要通过插值器来控制动画的播放过程。这个属性可以不指定,默认为@android:anim/accelerate_decelerate_interpolator,即加速减速插值器
  • android:shareInterpolator
    表示集合中的动画是否和集合共享同一个插值器。如果集合不指定插值器,那么子动画就需要单独指定所需的插值器或者使用默认值。
  • 标签标示平移动画,对应TranslateAnimation类,它可以使一个View在水平和竖直方向完成平移的动画效果
android:fromXDelta——表示x的起始值,比如0;
android:toXDelta——表示x的结束值,比如100;
android:fromYDelta——表示y的起始值;
android:toYDelta——表示y的结束值。

下面的代码从当前位置Y方向移动






Activity中调用

class MainActivity : AppCompatActivity() {
    private var TAG = "MainActivity"

    private var button: Button? = null
    override
    fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        button = findViewById(R.id.btn)
        val loadAnimation = AnimationUtils.loadAnimation(this, R.anim.anim)
        button!!.setOnClickListener {
            button!!.startAnimation(loadAnimation)
        }
    }
}

组合动画使用如下,引用方式同上



    

    



你可能感兴趣的:(Android,补间动画,View动画)