Saturday, 22 June 2013

Flip Animation in android

1. MainXML File

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/button"
        android:text="Flip"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
   

    <ImageView
        android:id="@+id/img1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/a"
        android:layout_marginLeft="65dp" />

    <ImageView
        android:layout_marginLeft="65dp"
        android:id="@+id/img2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/b"
        android:visibility="gone" />
   
</LinearLayout>


2. Java File

package com.example.flipexample;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.annotation.TargetApi;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SeekBar;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

@TargetApi(Build.VERSION_CODES.HONEYCOMB) public class MainActivity extends Activity {

private static final int DURATION = 1500;
    private SeekBar mSeekBar;
 
    
 ImageView i1,i2,i3,i4;
   
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
       
 i1=(ImageView)findViewById(R.id.img1);
 i2=(ImageView)findViewById(R.id.img2);

        
       
 
        Button starter = (Button) findViewById(R.id.button);
        starter.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                flipit();
            }
        });
    }

    private Interpolator accelerator = new AccelerateInterpolator();
    private Interpolator decelerator = new DecelerateInterpolator();
    private void flipit() {
       
        final ImageView i11;
        final ImageView i12;
        if (i1.getVisibility() == View.GONE) {
            i11 = i2;
            i12 = i1;
        } else {
            i12 = i2;
            i11 = i1;
        }
       
        ObjectAnimator visToInvis = ObjectAnimator.ofFloat(i11, "rotationY", 0f, 90f);
        visToInvis.setDuration(500);
        visToInvis.setInterpolator(accelerator);
        final ObjectAnimator invisToVis = ObjectAnimator.ofFloat(i12, "rotationY",
                -90f, 0f);
        invisToVis.setDuration(500);
        invisToVis.setInterpolator(decelerator);
        visToInvis.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator anim) {
                i11.setVisibility(View.GONE);
                invisToVis.start();
                i12.setVisibility(View.VISIBLE);
            }
        });
        visToInvis.start();
    }
 
 
}
    

No comments:

Post a Comment