package com.ptrprograms.animations.activity; import android.app.Activity; import android.app.ActivityOptions; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.Button; import android.widget.ImageView; import com.ptrprograms.animations.R; import java.io.ByteArrayOutputStream; public class SharedElementAnimationActivity extends Activity implements View.OnClickListener { private ImageView mImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); setContentView(R.layout.activity_shared_element_animation); Button button = (Button) findViewById( R.id.button ); button.setOnClickListener( this ); mImageView = (ImageView) findViewById( R.id.image ); mImageView.setImageDrawable( getDrawable( R.drawable.ic_launcher ) ); } @Override public void onClick(View view) { if( view.getId() == R.id.button ) { Intent intent = new Intent( this, SharedElementSecondAnimationActivity.class ); ((ViewGroup) mImageView.getParent()).setTransitionGroup( false ); ByteArrayOutputStream stream = new ByteArrayOutputStream(); ( (BitmapDrawable) mImageView.getDrawable() ).getBitmap().compress(Bitmap.CompressFormat.PNG, 100, stream); intent.putExtra( "image", stream.toByteArray() ); ActivityOptions options; try { options = ActivityOptions.makeSceneTransitionAnimation( this, mImageView, "image" ); } catch( NullPointerException e ) { Log.e( "SharedElementAnimationChangeBoundsActivity", "Did you set your ViewNames in the layout file?" ); return; } if( options == null ) { Log.e("sharedelementanimation", "Options is null. Did you set "); } else { startActivity(intent, options.toBundle()); } } } }