안드로이드는 애니메이션을 통해 카드를 뒤집는 효과를 실현한다

3159 단어
구현 효과는 다음과 같습니다.
 
 
실현 원리: 두 장의 그림을 준비하고 한 장은 정면, 한 장은 뒷면으로 한다. 그림의 정면을 클릭하면 정면의 그림의 가로 좌표 x는 0%로 수축한다. 정면 그림의 가로 좌표 x가 0으로 수축되면 그림은 뒷면 그림으로 전환되고 뒷면의 그림의 가로 좌표 x는 x에서 100%로 확대된다.두 애니메이션의 교체 사용을 통해 카드를 뒤집는 효과를 실현하다
 
1단계: 두 개의 애니메이션 파일 정의하기
 
축소 애니메이션:back.xml
 



    




 
 
애니메이션 확대:font.xml


    




 
 
레이아웃 파일:activitymain.xml



    




 
 
java 구현 코드:
package com.contentprovide.liuliu.dabian_gridview;

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

public class MainActivity extends AppCompatActivity {

    ImageView ima;

    Animation animation;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ima = (ImageView) findViewById(R.id.ima);


        animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.back);


        ima.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                
//                  setAnimationListener              
                animation.setAnimationListener(new Animation.AnimationListener() {
                    @Override
                    public void onAnimationStart(Animation animation) {

                    }

                    @Override
                    public void onAnimationEnd(Animation animation) {//             

                        animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.font);
                        ima.setBackgroundResource(R.drawable.ruhua);
                        ima.startAnimation(animation);

                    }

                    @Override
                    public void onAnimationRepeat(Animation animation) {

                    }
                });
                ima.startAnimation(animation);
            }
        });


    }
}

 
전재 대상:https://www.cnblogs.com/lyd447113735/p/8310760.html

좋은 웹페이지 즐겨찾기