├── app ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── drawable │ │ │ ├── lion.jpg │ │ │ └── gorilla.jpg │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ ├── transition │ │ │ └── simple_fragment_transition.xml │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── styles.xml │ │ │ └── strings.xml │ │ ├── transition-v21 │ │ │ └── default_window_fade.xml │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ ├── layout │ │ │ ├── item_animal_square.xml │ │ │ ├── activity_fragment_to_fragment.xml │ │ │ ├── activity_recycler_view_to_fragment.xml │ │ │ ├── fragment_animal_view_pager.xml │ │ │ ├── activity_recycler_view.xml │ │ │ ├── glide_activity_b.xml │ │ │ ├── picasso_activity_b.xml │ │ │ ├── glide_fragment_b.xml │ │ │ ├── picasso_fragment_b.xml │ │ │ ├── activity_b.xml │ │ │ ├── fragment_b.xml │ │ │ ├── glide_activity_a.xml │ │ │ ├── picasso_activity_a.xml │ │ │ ├── glide_fragment_a.xml │ │ │ ├── picasso_fragment_a.xml │ │ │ ├── activity_a.xml │ │ │ ├── fragment_a.xml │ │ │ ├── activity_animal_detail.xml │ │ │ ├── fragment_animal_detail.xml │ │ │ ├── activity_flash_fix_b.xml │ │ │ ├── activity_flash_fix_a.xml │ │ │ └── activity_main.xml │ │ └── values-v21 │ │ │ └── styles.xml │ │ ├── java │ │ └── com │ │ │ └── mikescamell │ │ │ └── sharedelementtransitions │ │ │ ├── recycler_view │ │ │ ├── AnimalItemClickListener.java │ │ │ ├── recycler_view_to_fragment │ │ │ │ ├── RecyclerViewToFragmentActivity.java │ │ │ │ ├── RecyclerViewFragment.java │ │ │ │ └── AnimalDetailFragment.java │ │ │ ├── recycler_view_to_viewpager │ │ │ │ ├── RecyclerViewToViewPagerActivity.java │ │ │ │ ├── AnimalPagerAdapter.java │ │ │ │ ├── AnimalViewPagerFragment.java │ │ │ │ └── RecyclerViewFragment.java │ │ │ ├── AnimalItem.java │ │ │ ├── Utils.java │ │ │ ├── recycler_view_to_activity │ │ │ │ ├── AnimalDetailActivity.java │ │ │ │ └── RecyclerViewActivity.java │ │ │ └── AnimalGalleryAdapter.java │ │ │ ├── simple_activity_to_activity │ │ │ ├── SimpleActivityB.java │ │ │ └── SimpleActivityA.java │ │ │ ├── simple_fragment_to_fragment │ │ │ ├── FragmentToFragmentActivity.java │ │ │ ├── SimpleFragmentB.java │ │ │ └── SimpleFragmentA.java │ │ │ ├── glide_fragment_to_fragment │ │ │ ├── GlideFragmentToFragmentActivity.java │ │ │ ├── GlideFragmentA.java │ │ │ └── GlideFragmentB.java │ │ │ ├── picasso_fragment_to_fragment │ │ │ ├── PicassoFragmentToFragmentActivity.java │ │ │ ├── PicassoFragmentB.java │ │ │ └── PicassoFragmentA.java │ │ │ ├── picasso_activity_to_activity │ │ │ ├── PicassoActivityB.java │ │ │ └── PicassoActivityA.java │ │ │ ├── glide_activity_to_activity │ │ │ ├── GlideActivityB.java │ │ │ └── GlideActivityA.java │ │ │ ├── flash_fix │ │ │ ├── xml_activity │ │ │ │ ├── FlashFixXmlActivityA.java │ │ │ │ └── FlashFixXmlActivityB.java │ │ │ └── programmatic_activity │ │ │ │ ├── FlashFixProgrammaticActivityA.java │ │ │ │ └── FlashFixProgrammaticActivityB.java │ │ │ └── MainActivity.java │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── LICENSE ├── LICENSE.md ├── .gitignore ├── gradlew.bat └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/lion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikescamell/shared-element-transitions/HEAD/app/src/main/res/drawable/lion.jpg -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikescamell/shared-element-transitions/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/drawable/gorilla.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikescamell/shared-element-transitions/HEAD/app/src/main/res/drawable/gorilla.jpg -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikescamell/shared-element-transitions/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikescamell/shared-element-transitions/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/transition/simple_fragment_transition.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikescamell/shared-element-transitions/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikescamell/shared-element-transitions/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikescamell/shared-element-transitions/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Jan 17 19:24:25 GMT 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/transition-v21/default_window_fade.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/mikescamell/sharedelementtransitions/recycler_view/AnimalItemClickListener.java: -------------------------------------------------------------------------------- 1 | package com.mikescamell.sharedelementtransitions.recycler_view; 2 | 3 | import android.widget.ImageView; 4 | 5 | /** 6 | * Created by msc10 on 19/02/2017. 7 | */ 8 | 9 | public interface AnimalItemClickListener { 10 | void onAnimalItemClick(int pos, AnimalItem animalItem, ImageView shareImageView); 11 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/item_animal_square.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/mikescamell/sharedelementtransitions/simple_activity_to_activity/SimpleActivityB.java: -------------------------------------------------------------------------------- 1 | package com.mikescamell.sharedelementtransitions.simple_activity_to_activity; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.mikescamell.sharedelementtransitions.R; 7 | 8 | public class SimpleActivityB extends AppCompatActivity { 9 | 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | setContentView(R.layout.activity_b); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_fragment_to_fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_recycler_view_to_fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_animal_view_pager.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/msc10/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/mikescamell/sharedelementtransitions/simple_fragment_to_fragment/FragmentToFragmentActivity.java: -------------------------------------------------------------------------------- 1 | package com.mikescamell.sharedelementtransitions.simple_fragment_to_fragment; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.mikescamell.sharedelementtransitions.R; 7 | 8 | public class FragmentToFragmentActivity extends AppCompatActivity { 9 | 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | setContentView(R.layout.activity_fragment_to_fragment); 14 | 15 | getSupportFragmentManager() 16 | .beginTransaction() 17 | .add(R.id.content, SimpleFragmentA.newInstance()) 18 | .commit(); 19 | } 20 | } -------------------------------------------------------------------------------- /app/src/main/java/com/mikescamell/sharedelementtransitions/recycler_view/recycler_view_to_fragment/RecyclerViewToFragmentActivity.java: -------------------------------------------------------------------------------- 1 | package com.mikescamell.sharedelementtransitions.recycler_view.recycler_view_to_fragment; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.mikescamell.sharedelementtransitions.R; 7 | 8 | public class RecyclerViewToFragmentActivity extends AppCompatActivity { 9 | 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | setContentView(R.layout.activity_fragment_to_fragment); 14 | 15 | getSupportFragmentManager() 16 | .beginTransaction() 17 | .add(R.id.content, RecyclerViewFragment.newInstance()) 18 | .commit(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/mikescamell/sharedelementtransitions/recycler_view/recycler_view_to_viewpager/RecyclerViewToViewPagerActivity.java: -------------------------------------------------------------------------------- 1 | package com.mikescamell.sharedelementtransitions.recycler_view.recycler_view_to_viewpager; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.mikescamell.sharedelementtransitions.R; 7 | 8 | public class RecyclerViewToViewPagerActivity extends AppCompatActivity { 9 | 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | setContentView(R.layout.activity_fragment_to_fragment); 14 | 15 | getSupportFragmentManager() 16 | .beginTransaction() 17 | .add(R.id.content, RecyclerViewFragment.newInstance()) 18 | .commit(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/mikescamell/sharedelementtransitions/glide_fragment_to_fragment/GlideFragmentToFragmentActivity.java: -------------------------------------------------------------------------------- 1 | package com.mikescamell.sharedelementtransitions.glide_fragment_to_fragment; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.mikescamell.sharedelementtransitions.R; 7 | 8 | public class GlideFragmentToFragmentActivity extends AppCompatActivity { 9 | 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | setContentView(R.layout.activity_fragment_to_fragment); 14 | 15 | if (savedInstanceState == null) { 16 | getSupportFragmentManager() 17 | .beginTransaction() 18 | .add(R.id.content, GlideFragmentA.newInstance()) 19 | .commit(); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /app/src/main/java/com/mikescamell/sharedelementtransitions/picasso_fragment_to_fragment/PicassoFragmentToFragmentActivity.java: -------------------------------------------------------------------------------- 1 | package com.mikescamell.sharedelementtransitions.picasso_fragment_to_fragment; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.mikescamell.sharedelementtransitions.R; 7 | 8 | public class PicassoFragmentToFragmentActivity extends AppCompatActivity { 9 | 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | setContentView(R.layout.activity_fragment_to_fragment); 14 | 15 | if (savedInstanceState == null) { 16 | getSupportFragmentManager() 17 | .beginTransaction() 18 | .add(R.id.content, PicassoFragmentA.newInstance()) 19 | .commit(); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_recycler_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 19 | 20 |