美文网首页
安卓中基本的动画总结

安卓中基本的动画总结

作者: 码农陈小二 | 来源:发表于2017-11-09 19:02 被阅读58次

安卓有三种基本的动画:

1.帧动画
2.补间动画
3.属性动画(安卓3.0以后加入)

帧动画

帧动画是在drawable下新建一个xml文件,然后标签为animation-list,标签下是一个个item,然后将这个drawable设置为需要动画的view的background,最后在代码中找到这个动画,然后运行就好。

        img.setImageResource(R.drawable.xx);
        AnimationDrawable animationDrawable = (AnimationDrawable) img.getDrawable();
        animationDrawable.start();
补间动画

补间动画就是所谓的移动、旋转、缩放之类的操作。补间动画并不会改变view的真正位置,例如将一个button从位置A移动到位置B,假如button有点击事件,这时点击位置B并不会有反应,只有点击位置A才有触发点击时间。

补间动画有两种实现方式:
1.在res-anim 里新建xml文件,其中的标签对应将要进行的动画如:

<?xml version="1.0" encoding="utf-8"?>
<translate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:toXDelta="100"
    android:toYDelta="100"
    android:duration="2000" 
    >

</translate>

需要注意的是,我这里的duration属性,studio没有提示,需要自己手动输入。然后在代码中实现动画

        Animation animation = AnimationUtils.loadAnimation(this, R.anim.xx);
        view.startAnimation(animation);

2.当然,也可以不写xml文件,直接通过代码实现

        TranslateAnimation translateAnimation = new TranslateAnimation(
                Animation.RELATIVE_TO_SELF, 0f,
                Animation.ABSOLUTE, targetX,
                Animation.RELATIVE_TO_SELF, 0f,
                Animation.ABSOLUTE, targetY);
        translateAnimation.setDuration(2000);
        view.startAnimation(animation);
属性动画

属性动画有两个核心类ObjectAnimator以及ValueAnimator
其中ValueAnimator需要我们自己去实现元素的更新

        ValueAnimator animator = ValueAnimator.ofInt(0, 100);  
        animator.setTarget(view);  
        animator.setDuration(1000).start();  
        animator.addUpdateListener(new AnimatorUpdateListener(){  
            @Override  
            public void onAnimationUpdate(ValueAnimator animation){  
                 view.setTranslationY((Float) animation.getAnimatedValue());  
             }  
        });  

而ObjectAnimator就简单多了

        ObjectAnimator
         .ofInt(view, "translateY", 0, 100)//  
         .setDuration(1000)//  
         .start();

当然属性动画也可以在res-animator建立xml文件来实现动画。

<?xml version="1.0" encoding="utf-8"?>
<objectAnimator
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:valueFrom="0"
    android:valueTo="100"
    android:propertyName="translateY"
    android:duration="1000"
    >
</objectAnimator>

然后在代码中通过代码实现动画效果

        Animator animator = AnimatorInflater.loadAnimator(context, R.animator.xx); 
        animator.setTarget(view); //view表示我们要设置动画的对象
        animator.start();
以上就是动画的初步总结了,方便以后忘的时候可以查到。

相关文章

  • 安卓中基本的动画总结

    安卓有三种基本的动画: 1.帧动画2.补间动画3.属性动画(安卓3.0以后加入) 帧动画 帧动画是在drawabl...

  • 【总结】安卓动画

    本篇为对android动画机制的粗略总结,目的是方便查询而非讲解,所以代码部分的注释比较多,但是很多该配图的地方没...

  • Android基础之动画资源浅析

    动画 在开发中,为了让我们的App更加生动,我们往往会加入一些动画效果,下面我们来说说安卓中的动画。 安卓中提供了...

  • 安卓属性动画总结

    属性动画简要介绍 安卓属性动画分为四种: 位置变化:TranslateAnimation 缩放: ScaleAni...

  • Android 补间动画(Tween Animation)运行原

    我们都知道安卓补间动画的使用,系统为我们封装了几个基本的动画,也就是ScaleAnimation,AlphaAni...

  • 初识安卓中的动画

  • 一个硬件的普及,一款机皇的陨落,一加7如何开始“恶臭”?

    在手机阵营中,当前基本就是划分为安卓与iOS两个阵营,其中安卓的是手机中数目众多,其中安卓手机中也是非常喜欢“称皇...

  • 安卓动画

    android.view.animation Tween(补间动画/渐变动画)特点:只是改变了View的显示效果而...

  • 安卓动画

    补间动画 帧动画 属性动画 TweeAnimation 补间动画 只可以改变两个关键帧之间的透明度,旋转,缩放,位...

  • 安卓动画

    Android 中的动画可以分为以下几类: 逐帧动画 补间动画 属性动画 1、逐帧动画 逐帧动画的原理就是让一系列...

网友评论

      本文标题:安卓中基本的动画总结

      本文链接:https://www.haomeiwen.com/subject/imsmmxtx.html