Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android動畫控件之Animation

Android動畫控件之Animation

編輯:關於Android編程

概述:

android的動畫效果包括:移動,漸變透明度,旋轉,縮放。
實現動畫的方式有兩種:在java代碼中動態實現,在xml中靜態實現。

demo

動態實現:

    /*
     動畫的透明度漸變
      */
     AlphaAnimation alphaAnimation = new AlphaAnimation(1f,0);//透明度從1到0
     alphaAnimation.setDuration(1000);//完成漸變的時間
     alphaAnimation.setStartOffset(200);//響應時間
     mImageViewAnim.startAnimation(alphaAnimation);//用一個ImageView加載animation,Image務必放入src或者加載過background

    /*
    動畫的移動
     */
    TranslateAnimation translateAnimation =
            //從一個坐標到另一個坐標的移動,參數依次為:起始點橫、縱坐標,結束點橫、縱坐標
            new TranslateAnimation(-mImageViewAnim.getMeasuredWidth(),0,0,0);
    translateAnimation.setDuration(1000);
    translateAnimation.setStartOffset(200);
    mImageViewAnim.startAnimation(translateAnimation);

    /*
    動畫的旋轉
     */
    RotateAnimation rotateAnimation = new RotateAnimation(0,360);//默認沿著左上角旋轉
    rotateAnimation.setDuration(1000);
    rotateAnimation.setStartOffset(200);
    mImageViewAnim.startAnimation(rotateAnimation);

    /*
    動畫的縮放
     */
    ScaleAnimation scaleAnimation = new ScaleAnimation(1f,2f,1f,2f);//水平尺寸變化,豎直尺寸變化
    scaleAnimation.setDuration(1000);
    scaleAnimation.setStartOffset(200);
    mImageViewAnim.startAnimation(scaleAnimation);

動畫的合並加載,需要一個AnimationSet,將所有的animation加載進去:

    /**
      * 聲明一個AnimationSet,是一個存儲animation的集合
      * false:被此set加載的每個animation用自己的interpolator;
      * true:所有animation功用一個interpolator
      */
     AnimationSet animationSet = new AnimationSet(false);
     AlphaAnimation alphaAnimation = new AlphaAnimation(1f,0);
     TranslateAnimation translateAnimation =
             new TranslateAnimation(0,0,mImageViewAnim.getMeasuredWidth(),mImageViewAnim.getMeasuredHeight());
     RotateAnimation rotateAnimation = new RotateAnimation(0,360,RotateAnimation.RELATIVE_TO_SELF
             ,0.5f,RotateAnimation.RELATIVE_TO_SELF
             ,0.5f);//RELATIVE_TO_SELF的意思是位置相對於自己
     ScaleAnimation scaleAnimation = new ScaleAnimation(1f,2f,1f,2f);

     alphaAnimation.setDuration(1000);
     translateAnimation.setDuration(1000);
     rotateAnimation.setDuration(1000);
     scaleAnimation.setDuration(1000);
     //添加各個動畫
     animationSet.addAnimation(alphaAnimation);
     animationSet.addAnimation(translateAnimation);
     animationSet.addAnimation(rotateAnimation);
     animationSet.addAnimation(scaleAnimation);
     mImageViewAnim.startAnimation(animationSet);

這樣運行的效果就是所有動畫組合咋一起的效果。

動畫的靜態加載,需要在res目錄下新建一個文件夾anim,在裡面新建一個資源文件,我的叫rotation.xml



    
        
            
            
        
       
           
       
        
            
        
        
            
        

在java代碼中調用這個資源:

        AnimationUtils utils = new AnimationUtils();
        Animation animation = utils.loadAnimation(getApplicationContext(),R.anim.rotation);
        mImageViewAnim.startAnimation(animation);

運行的效果是幾種xml中幾種動畫的綜合。 

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