安卓动画的简单实现方法(Animation和AnimationDrawable)

  • Animation-补间动画(Tweened Animation)

    实例先行:

    安卓动画的简单实现方法(Animation和AnimationDrawable)_第1张图片
    activity.xml:
    
    
            
    
            
        
    preview
    安卓动画的简单实现方法(Animation和AnimationDrawable)_第2张图片

    winpay_loading_bg.png
    安卓动画的简单实现方法(Animation和AnimationDrawable)_第3张图片

    res/anim/loading_animation.xml
    
    
        
    
    
    

    activity
    mLoadingBg = (ImageView) findViewById(R.id.winpay_loading_bg);
    Animation ImageRotateAnimation = AnimationUtils.loadAnimation(this,
                    R.anim.loading_animation);
    mLoadingBg.startAnimation(ImageRotateAnimation);

    理论知识:
    补间动画又可以分为四种形式,分别是 alpha(淡入淡出)translate(位移)scale(缩放大小)rotate(旋转)
    补间动画的实现,一般会采用xml 文件的形式;代码会更容易书写和阅读,同时也更容易复用。
    alpha(淡入淡出)
    scale(缩放)
    也可以使用set 标签将多个动画组合(代码源自Android SDK API)
    
        
        
        
        
        
            ...
        
    
    interpolator:主要作用是可以控制动画的变化速率 ,就是动画进行的快慢节奏。
    pivot: 决定了当前动画执行的参考位置

  • AnimationDrawable-帧动画(Frame Animation)

    实例先行:

    安卓动画的简单实现方法(Animation和AnimationDrawable)_第4张图片

    activity.xml:
        
    
            
    
            
        

    res/drawable/seatel_wifi_loading_bg.xml:
    
    
        
        
        
        
        
        
    
    
    安卓动画的简单实现方法(Animation和AnimationDrawable)_第5张图片

    activity:
    private void showLoading() {
            mStatus.setImageResource(R.mipmap.seatel_wifi_loading);
            mWifiBg.setImageResource(R.drawable.seatel_wifi_loading_bg);
            mTip.setText("连接中。。。");
            AnimationDrawable anim = (AnimationDrawable) mWifiBg.getDrawable();
            anim.start();
        }

    理论知识:

    帧动画是最容易实现的一种动画,这种动画更多的依赖于完善的UI资源,他的原理就是将一张张单独的图片连贯的进行播放,
    从而在视觉上产生一种动画的效果;有点类似于某些软件制作gif动画的方式。
    android:oneshot="false" ,这个oneshot 的含义就是动画执行一次(true)还是循环执行多次。

你可能感兴趣的:(Android)