AnimationのTranslateAnimation(パンアニメーション)

3259 ワード

TranslateAnimation(アニメーションの平行移動)は、1枚の画像または他の位置から別の位置に到達することを意味します.直接コード分析、関連する重要な属性パラメータの解釈はすべてコードの中にあります.
1、まずmainを作成する.xmlファイル.


    

、続いてMainActivityを作成する.JAvaファイル.
package com.example.dell.bitmapproject;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {
    private ImageView image;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        image =(ImageView)findViewById(R.id.image);
        image.setOnClickListener(new OnClickListenerImpl());
    }
    private class OnClickListenerImpl implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            /*
                AnimationSet          ,true    Animation interpolator
                false       。
                Interpolator          ,        ,          
                accelerated(  ),decelerated(  ),repeated(  ),bounced(  ) 。
             */

            AnimationSet animationSet = new AnimationSet(true);
            /*
                    Animation      
                    setFillAfter(boolean fillAfter)
                      fillAfter      ,     ,           
                    setFillBefore(boolean fillBefore)
                      fillBefore      ,     ,            
                    setStartOffset(long startOffset)
                                     
                    setRepeatCount(int repeatCount)
                               
             */
            TranslateAnimation translateAnimation = new TranslateAnimation(
                    //X     
                    Animation.RELATIVE_TO_SELF, 0.0f,
                    //X        
                    Animation.RELATIVE_TO_SELF,0.5f,
                    //y     
                    Animation.RELATIVE_TO_SELF,0.0f,
                    //y         
                    Animation.RELATIVE_TO_SELF,1.5f);

            //3     
            translateAnimation.setDuration(2000);
            //  fillAfter      ,     ,           
            animationSet.setFillAfter(true);
            // AlphaAnimation              AnimationSet 
            animationSet.addAnimation(translateAnimation);
            //    
            MainActivity.this.image.startAnimation(animationSet);

        }
    }
}