<style name="AppTheme" parent="Theme.Material">     <!-- couleur principale de l’app, utilisée pour l’ActionBar -->     <item name="colorPrimary">@color/main_color</item>      <!-- version sombre de la couleur principale, pour la barre de statut -->     <item name="colorPrimaryDark">@color/main_color_dark</item>      <!-- couleur par défaut des widgets (boutons, switches, etc.) -->     <item name="colorAccent">@color/accent</item>      <!-- Vous pouvez pousser plus loin la personnalisation en utilisant les attributs colorControlNormal, colorControlActivated, colorControlHighlight et colorSwitchThumbNormal --> </style>

<android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="200dp"
        android:layout_height="200dp"
		<!-- cardCornerRadius vous permet de gérer le rayon des coins arrondis -->
        card_view:cardCornerRadius="4dp">
<!-- insérez ici les vues contenues dans la card -->
</android.support.v7.widget.CardView>

<TextView
    android:elevation="2dp" />

View view = findViewById(R.id.my_view);

// on récupère les coordonnées du centre de la vue
int cx = (view.getLeft() + view.getRight()) / 2;
int cy = (view.getTop() + view.getBottom()) / 2;

// on récupère le rayon final de la vue
int finalRadius = Math.max(view.getWidth(), view.getHeight());

// on crée l’Animator avec un rayon initial de 0
Animator anim =
    ViewAnimationUtils.createCircularReveal(view, cx, cy, 0, finalRadius);

// on fait apparaître la vue et on démarre l’animation
view.setVisibility(View.VISIBLE);
anim.start();

<!-- on anime ici l’attribut translationZ de la vue -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_pressed="true">
    <set>
      <objectAnimator android:propertyName="translationZ"
        android:duration="200"
        android:valueTo="2dp"
        android:valueType="floatType"/>
    </set>
  </item>
  <item android:state_enabled="true"
    android:state_pressed="false"
    android:state_focused="true">
    <set>
      <objectAnimator android:propertyName="translationZ"
        android:duration="100"
        android:valueTo="0"
        android:valueType="floatType"/>
    </set>
  </item>
</selector>

<!-- res/transition/image_transform.xml -->
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
  <changeImageTransform/>
</transitionSet>

Afin que le système anime la vue initiale pour la faire évoluer vers la vue finale, utilisez l’attribut android:transitionName avec la valeur de votre choix sur la vue qui sera animée dans les deux Activity.

<ImageView
        android:id="@+id/image"
  android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:transitionName="imagetransform"/>

<style name="AppTheme" parent="android:Theme.Material">
  <!-- activation des transitions personnalisées -->
  <item name="android:windowContentTransitions">true</item>

  <!-- spécification des transitions à éléments partagés -->
  <item name="android:windowSharedElementEnterTransition">
    @transition/image_transform</item>
  <item name="android:windowSharedElementExitTransition">
    @transition/image_transform</item>
</style>

View view = findViewById(R.id.image);
Intent intent = new Intent(this, Activity2.class);
ActivityOptions options = ActivityOptions
    .makeSceneTransitionAnimation(this, view, "imagetransform");
startActivity(intent, options.toBundle());

   <com.melnykov.fab.FloatingActionButton             android:id="@+id/fab"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_gravity="bottom|right"             android:layout_margin="16dp"             android:src="@drawable/ic_action_content_new"             fab:fab_colorNormal="@color/primary"             fab:fab_colorPressed="@color/primary_pressed"             fab:fab_colorRipple="@color/ripple" />

//On récupère le RecyclerView
mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);

// création de le LayoutManager
mLayoutManager = new StaggeredGridLayoutManager(this);
mRecyclerView.setLayoutManager(mLayoutManager);

// création de l’Adapter traditionnel
mAdapter = new CustomAdapter(myDataset);
mRecyclerView.setAdapter(mAdapter);

<Toolbar     android:id="@+id/toolbar"     android:layout_height="wrap_content"     android:layout_width="match_parent"     android:minHeight="?attr/actionBarSize"     android:background="?attr/colorPrimary" />

@Override public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);     setActionBar(toolbar); }