Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android的幀動畫和補間動畫總結

android的幀動畫和補間動畫總結

編輯:關於Android編程

總結一下 幀動畫和補間動畫,作為記錄。

一,動畫類型 說明

一種是tween animation(anim文件下)

xml文件中 java代碼中 說明 alpha AlphaAnimation 漸變透明度動畫效果 scale ScaleAnimation 漸變尺寸伸縮動畫效果 translate TranslateAnimation 畫面轉換位置移動動畫效果 rotate RotateAnimation 畫面轉移旋轉動畫效果

一種是frame animation(drawable文件下)

xml文件中 java代碼中 說明 animation-list AnimationDrawable 多張圖片一張張播放
animated-rotate
RotateDrawable
一張圖片旋轉

二,XML文件中定義動畫

在res目錄中新建anim文件夾,加入XML的動畫代碼

    
    
      
      
      
      
    


在res目錄中新建drawable文件夾,加入XML的動畫代碼



或者




三、AndroidXML動畫解析

1. Alpha

    
    
     
    
    


2. Scale
    
    
       
    
    


3. Translate
    
    
    
    
    


4. Rotate
    
    
      
    
    


幀動畫 animation-list
      
      
      
          
          
          
          
          
          
      


幀動畫 animated-rotate




使用xml中動畫

tween 動畫

    
或者
 Animation animation = AnimationUtils.loadAnimation(context, R.anim.tb);  
 img.startAnimation(animation);  

frame 動畫
 img.setImageResource(R.drawable.animation1);  
                animationDrawable = (AnimationDrawable) img.getDrawable();  
                animationDrawable.start();  
或者
background

,Java代碼中定義動畫

    //在代碼中定義 動畫實例對象
    private Animation myAnimation_Alpha;
    private Animation myAnimation_Scale;
    private Animation myAnimation_Translate;
    private Animation myAnimation_Rotate;

        //根據各自的構造方法來初始化一個實例對象
    myAnimation_Alpha = new AlphaAnimation(0.1f, 1.0f);

    myAnimation_Scale = new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
                 Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

    myAnimation_Translate = new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);

    myAnimation_Rotate = new RotateAnimation(0.0f, +350.0f,
                   Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);


五,Android 代碼動畫解析

1. AlphaAnimation

AlphaAnimation類對象定義
  1. 1. private AlphaAnimationmyAnimation_Alpha;
AlphaAnimation類對象構造
  1. AlphaAnimation(float fromAlpha, float toAlpha)
  2. //第一個參數fromAlpha為 動畫開始時候透明度
  3. //第二個參數toAlpha為 動畫結束時候透明度
  4. myAnimation_Alpha = new AlphaAnimation(0.1f, 1.0f);
  5. //說明:
  6. // 0.0表示完全透明
  7. // 1.0表示完全不透明
設置動畫持續時間
  1. myAnimation_Alpha.setDuration(5000);
  2. //設置時間持續時間為 5000毫秒

2. ScaleAnimation
ScaleAnimation類對象定義
  1. private ScaleAnimationmyAnimation_Scale;
ScaleAnimation類對象構造
  1. ScaleAnimation(float fromX, float toX, float fromY, float toY,
  2. int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
  3. //第一個參數fromX為動畫起始時 X坐標上的伸縮尺寸
  4. //第二個參數toX為動畫結束時 X坐標上的伸縮尺寸
  5. //第三個參數fromY為動畫起始時Y坐標上的伸縮尺寸
  6. //第四個參數toY為動畫結束時Y坐標上的伸縮尺寸
  7. /*說明:
  8. 以上四種屬性值
  9. 0.0表示收縮到沒有
  10. 1.0表示正常無伸縮
  11. 值小於1.0表示收縮
  12. 值大於1.0表示放大
  13. */
  14. //第五個參數pivotXType為動畫在X軸相對於物件位置類型
  15. //第六個參數pivotXValue為動畫相對於物件的X坐標的開始位置
  16. //第七個參數pivotXType為動畫在Y軸相對於物件位置類型
  17. //第八個參數pivotYValue為動畫相對於物件的Y坐標的開始位置
  18. myAnimation_Scale = new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
  19. Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
設置動畫持續時間
  1. myAnimation_Scale.setDuration(700);
  2. //設置時間持續時間為 700毫秒

3. TranslateAnimation

ranslateAnimation類對象定義

  1. private TranslateAnimationmyAnimation_Translate;
TranslateAnimation類對象構造
  1. TranslateAnimation(float fromXDelta, float toXDelta,
  2. float fromYDelta, float toYDelta)
  3. //第一個參數fromXDelta為動畫起始時 X坐標上的移動位置
  4. //第二個參數toXDelta為動畫結束時 X坐標上的移動位置
  5. //第三個參數fromYDelta為動畫起始時Y坐標上的移動位置
  6. //第四個參數toYDelta為動畫結束時Y坐標上的移動位置
設置動畫持續時間
  1. myAnimation_Translate = new TranslateAnimation(10f, 100f, 10f, 100f);
  2. myAnimation_Translate.setDuration(2000);
  3. //設置時間持續時間為 2000毫秒

4. RotateAnimation
RotateAnimation類對象定義
  1. private RotateAnimationmyAnimation_Rotate;
RotateAnimation類對象構造
  1. RotateAnimation(float fromDegrees, float toDegrees,
  2. int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
  3. //第一個參數fromDegrees為動畫起始時的旋轉角度
  4. //第二個參數toDegrees為動畫旋轉到的角度
  5. //第三個參數pivotXType為動畫在X軸相對於物件位置類型
  6. //第四個參數pivotXValue為動畫相對於物件的X坐標的開始位置
  7. //第五個參數pivotXType為動畫在Y軸相對於物件位置類型
  8. //第六個參數pivotYValue為動畫相對於物件的Y坐標的開始位置
  9. myAnimation_Rotate = new RotateAnimation(0.0f, +350.0f,
  10. Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
設置動畫持續時間
  1. myAnimation_Rotate.setDuration(3000);
  2. //設置時間持續時間為 3000毫秒
使用 Java代碼中 動畫
使用從View父類繼承過來的方法startAnimation()來為View或是子類View等等添加一個動畫效果
    public void startAnimation (Animation animation)
    view.startAnimation(myAnimation_Alpha);
    view.startAnimation(myAnimation_Scale);
    view.startAnimation(myAnimation_Translate);
    view.startAnimation(myAnimation_Rotate);


(------------------ps:在代碼中 不推薦使用 幀動畫,可以 new 一個對象探索一下

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved