From 3ba9aadfd6cd3492712008cd5dc032bb0bf15b32 Mon Sep 17 00:00:00 2001 From: Devansh <201851038@iiitvadodara.ac.in> Date: Wed, 2 Jun 2021 17:19:08 +0530 Subject: [PATCH] worked on some animations --- .../rickrolled/AllCharactersFragment.java | 7 ++++++ .../example/rickrolled/CharacterFragment.java | 15 ++++++++++++ .../com/example/rickrolled/MainActivity.java | 3 +++ .../com/example/rickrolled/RVAdapter.java | 24 ++++++++++++++++--- app/src/main/res/layout/char_view.xml | 7 ++++++ .../main/res/layout/fragment_character.xml | 7 ++++++ .../main/res/transition/card_transition.xml | 5 ++++ 7 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/transition/card_transition.xml diff --git a/app/src/main/java/com/example/rickrolled/AllCharactersFragment.java b/app/src/main/java/com/example/rickrolled/AllCharactersFragment.java index 96fc524..54361b2 100644 --- a/app/src/main/java/com/example/rickrolled/AllCharactersFragment.java +++ b/app/src/main/java/com/example/rickrolled/AllCharactersFragment.java @@ -9,6 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import android.transition.TransitionInflater; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; @@ -25,6 +26,7 @@ import com.android.volley.toolbox.Volley; import com.bumptech.glide.Glide; import com.google.android.material.progressindicator.LinearProgressIndicator; +import com.google.android.material.transition.Hold; import org.jetbrains.annotations.NotNull; import org.json.JSONArray; @@ -51,6 +53,11 @@ public AllCharactersFragment() { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); +// setExitTransition(new Hold()); + + setSharedElementEnterTransition(TransitionInflater.from(getActivity()).inflateTransition(R.transition.card_transition)); + setSharedElementReturnTransition(TransitionInflater.from(getActivity()).inflateTransition(R.transition.card_transition)); + setHasOptionsMenu(true); } diff --git a/app/src/main/java/com/example/rickrolled/CharacterFragment.java b/app/src/main/java/com/example/rickrolled/CharacterFragment.java index 3777802..fb99d2b 100644 --- a/app/src/main/java/com/example/rickrolled/CharacterFragment.java +++ b/app/src/main/java/com/example/rickrolled/CharacterFragment.java @@ -3,17 +3,25 @@ import android.content.res.Resources; import android.os.Bundle; +import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import android.transition.TransitionInflater; import android.view.LayoutInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.view.Window; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; +import com.google.android.material.transition.MaterialContainerTransform; import com.mikhaellopez.circularimageview.CircularImageView; +import org.jetbrains.annotations.NotNull; + public class CharacterFragment extends Fragment { private CircularImageView imageView; @@ -25,7 +33,14 @@ public CharacterFragment() { @Override public void onCreate(Bundle savedInstanceState) { +// getActivity().getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); super.onCreate(savedInstanceState); +// setSharedElementEnterTransition(new MaterialContainerTransform().setDuration(2000)); +// getActivity().getSupportFragmentManager().addOnBackStackChangedListener((FragmentManager.OnBackStackChangedListener) this); +// getActivity().getActionBar().setDisplayHomeAsUpEnabled(true); + + setSharedElementEnterTransition(TransitionInflater.from(getActivity()).inflateTransition(R.transition.card_transition)); + setSharedElementReturnTransition(TransitionInflater.from(getActivity()).inflateTransition(R.transition.card_transition)); } @Override diff --git a/app/src/main/java/com/example/rickrolled/MainActivity.java b/app/src/main/java/com/example/rickrolled/MainActivity.java index 304cb34..9204f2f 100644 --- a/app/src/main/java/com/example/rickrolled/MainActivity.java +++ b/app/src/main/java/com/example/rickrolled/MainActivity.java @@ -12,6 +12,7 @@ import android.util.Log; import android.view.MenuItem; import android.view.View; +import android.view.Window; import android.widget.ProgressBar; import com.android.volley.Request; @@ -45,6 +46,8 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On @Override protected void onCreate(Bundle savedInstanceState) { +// getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); + super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); diff --git a/app/src/main/java/com/example/rickrolled/RVAdapter.java b/app/src/main/java/com/example/rickrolled/RVAdapter.java index 46d5183..16829c2 100644 --- a/app/src/main/java/com/example/rickrolled/RVAdapter.java +++ b/app/src/main/java/com/example/rickrolled/RVAdapter.java @@ -1,9 +1,12 @@ package com.example.rickrolled; +import android.app.Activity; +import android.app.ActivityOptions; import android.content.Context; import android.content.res.Resources; import android.os.Bundle; import android.util.Log; +import android.util.Pair; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -24,8 +27,6 @@ import org.json.JSONException; import org.json.JSONObject; -import java.util.concurrent.atomic.AtomicReference; - public class RVAdapter extends RecyclerView.Adapter { JSONArray data; @@ -90,6 +91,18 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi CharacterFragment fragment = new CharacterFragment(); Bundle bundle = new Bundle(); try { +// +// Pair pair[]=new Pair[7]; +// pair[0] =new Pair(ACH.charname, "shared_name"); +// pair[1] =new Pair(ACH.charimage, "shared_image"); +// pair[2] =new Pair(ACH.chargender, "shared_gender"); +// pair[3] =new Pair(ACH.charstatus, "shared_status"); +// pair[4] =new Pair(ACH.charorigin, "shared_origin"); +// pair[5] =new Pair(ACH.charlastknown, "shared_last"); +// pair[6] =new Pair(ACH.charspecies, "shared_species"); +// ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation((Activity) context, pair); +// fragment.setArguments(options.toBundle()); + bundle.putString("name", charsIndi.getString("name")); bundle.putString("gender", charsIndi.getString("gender")); bundle.putString("species", charsIndi.getString("species")); @@ -101,7 +114,12 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi e.printStackTrace(); } finally { fragment.setArguments(bundle); - ((FragmentActivity) context).getSupportFragmentManager().beginTransaction().replace(R.id.fragment, fragment).addToBackStack("New Fragment").commit(); + ((FragmentActivity) context).getSupportFragmentManager() + .beginTransaction() + .addToBackStack("New Fragment") + .replace(R.id.fragment, fragment) + .addSharedElement(ACH.charimage, "shared_image") + .commit(); } }); diff --git a/app/src/main/res/layout/char_view.xml b/app/src/main/res/layout/char_view.xml index defe6fc..2e11e70 100644 --- a/app/src/main/res/layout/char_view.xml +++ b/app/src/main/res/layout/char_view.xml @@ -35,6 +35,7 @@ app:layout_constraintStart_toStartOf = "parent" app:layout_constraintTop_toTopOf = "parent" tools:srcCompat = "@tools:sample/avatars" + android:transitionName="shared_image" /> @@ -66,6 +69,7 @@ android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_marginTop = "8dp" + android:transitionName="shared_gender" android:text = "Gender" android:textSize = "18sp" /> @@ -75,6 +79,7 @@ android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_marginTop = "8dp" + android:transitionName="shared_species" android:maxLines = "2" android:minLines = "1" android:text = "Species" @@ -101,6 +106,7 @@ android:layout_marginStart = "16dp" android:maxLines = "2" android:minLines = "1" + android:transitionName="shared_origin" android:text = "Earth" android:textStyle = "italic|bold" /> @@ -128,6 +134,7 @@ android:layout_marginStart = "16dp" android:maxLines = "2" android:minLines = "1" + android:transitionName="shared_last" android:text = "Earth" android:textStyle = "italic|bold" /> diff --git a/app/src/main/res/transition/card_transition.xml b/app/src/main/res/transition/card_transition.xml new file mode 100644 index 0000000..44b3dce --- /dev/null +++ b/app/src/main/res/transition/card_transition.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file