hhfa1990
6/5/2015 - 6:41 PM

#Android Shared view transition

#Android Shared view transition

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="android:Theme.Material.Light">
        <!-- enable window content transitions -->
        <item name="android:windowContentTransitions">true</item>

        <!-- enable overlapping of exiting and entering activities-->
        <item name="android:windowAllowEnterTransitionOverlap">true</item>
        <item name="android:windowAllowReturnTransitionOverlap">true</item>
    </style>
</resources>

<!-- Style.xml (v21)-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <ImageView
        android:id="@+id/cardImage"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:scaleType="centerCrop"
        android:transitionName="cardImage"
        android:src="@drawable/picture" />

</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.cyancode.apps.sharedviewstransitions.Details">

    <ImageView
        android:id="@+id/DetailscardImage"
        android:layout_width="fill_parent"
        android:layout_height="200dp"
        android:scaleType="centerCrop"
        android:transitionName="cardImage2"
        android:src="@drawable/picture" />

</RelativeLayout>
//En el OnCreate

final ImageView cardImage = (ImageView) findViewById(R.id.cardImage);

cardImage.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        //This is where the magic happens. makeSceneTransitionAnimation takes a context, view, a name for the target view.
        ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(MainActivity.this, cardImage, "cardImage2");
        Intent intent = new Intent(MainActivity.this, Details.class);
        startActivity(intent, options.toBundle());
    }
});