Added start activity transition animation.

This commit is contained in:
2022-08-11 17:16:48 +08:00
parent 87fe99575c
commit bcf21338f1
5 changed files with 20 additions and 4 deletions

View File

@@ -39,6 +39,6 @@ public class ToolsFragment extends Fragment {
private void initLayout() { private void initLayout() {
toolsRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); toolsRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
toolsRecyclerView.setAdapter(new ToolsAdapter()); toolsRecyclerView.setAdapter(new ToolsAdapter(getActivity()));
} }
} }

View File

@@ -1,6 +1,7 @@
package com.fatapp.oxygentoolbox.ui.home.util; package com.fatapp.oxygentoolbox.ui.home.util;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MotionEvent; import android.view.MotionEvent;
@@ -23,6 +24,11 @@ import java.util.Collections;
public class ToolsAdapter extends RecyclerView.Adapter<ToolsAdapter.ViewHolder> { public class ToolsAdapter extends RecyclerView.Adapter<ToolsAdapter.ViewHolder> {
private ViewGroup parent; private ViewGroup parent;
private Activity activity;
public ToolsAdapter(Activity activity) {
this.activity = activity;
}
@NonNull @NonNull
@Override @Override
@@ -42,7 +48,7 @@ public class ToolsAdapter extends RecyclerView.Adapter<ToolsAdapter.ViewHolder>
View toolButtonLayout = LayoutInflater.from(parent.getContext()).inflate(R.layout.fold_layout_button, parent, false); View toolButtonLayout = LayoutInflater.from(parent.getContext()).inflate(R.layout.fold_layout_button, parent, false);
Button toolButton = toolButtonLayout.findViewById(R.id.tool_button); Button toolButton = toolButtonLayout.findViewById(R.id.tool_button);
toolButton.setText(button.getText()); toolButton.setText(button.getText());
toolButton.setOnClickListener(view -> ToolsLauncher.launch(parent.getContext(), button.getActivity())); toolButton.setOnClickListener(view -> ToolsLauncher.launch(activity, parent.getContext(), button.getActivity()));
toolButton.setOnTouchListener((view, motionEvent) -> { toolButton.setOnTouchListener((view, motionEvent) -> {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
view.animate().translationZ(8f).setDuration(100L); view.animate().translationZ(8f).setDuration(100L);

View File

@@ -2,6 +2,8 @@ package com.fatapp.oxygentoolbox.util;
import static androidx.core.content.ContextCompat.startActivity; import static androidx.core.content.ContextCompat.startActivity;
import android.app.Activity;
import android.app.ActivityOptions;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.widget.Toast; import android.widget.Toast;
@@ -9,9 +11,9 @@ import android.widget.Toast;
import com.fatapp.oxygentoolbox.R; import com.fatapp.oxygentoolbox.R;
public class ToolsLauncher { public class ToolsLauncher {
public static void launch(Context context, String activity) { public static void launch(Activity activity, Context context, String launchActivity) {
try { try {
startActivity(context, new Intent(context, Class.forName(activity)), null); startActivity(context, new Intent(context, Class.forName(launchActivity)), ActivityOptions.makeSceneTransitionAnimation(activity).toBundle());
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
Toast.makeText(context, R.string.activity_class_not_found, Toast.LENGTH_LONG).show(); Toast.makeText(context, R.string.activity_class_not_found, Toast.LENGTH_LONG).show();
} }

View File

@@ -19,6 +19,10 @@
<item name="app_ripple_theme">@color/app_ripple</item> <item name="app_ripple_theme">@color/app_ripple</item>
<item name="app_divider_theme">@color/app_divider</item> <item name="app_divider_theme">@color/app_divider</item>
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowEnterTransition">@android:transition/fade</item>
<item name="android:windowExitTransition">@android:transition/fade</item>
<!-- Primary brand color. --> <!-- Primary brand color. -->
<item name="colorPrimary">?attr/app_theme</item> <item name="colorPrimary">?attr/app_theme</item>
<item name="colorPrimaryVariant">?attr/app_theme</item> <item name="colorPrimaryVariant">?attr/app_theme</item>

View File

@@ -19,6 +19,10 @@
<item name="app_ripple_theme">@color/app_ripple</item> <item name="app_ripple_theme">@color/app_ripple</item>
<item name="app_divider_theme">@color/app_divider</item> <item name="app_divider_theme">@color/app_divider</item>
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowEnterTransition">@android:transition/fade</item>
<item name="android:windowExitTransition">@android:transition/fade</item>
<!-- Primary brand color. --> <!-- Primary brand color. -->
<item name="colorPrimary">?attr/app_theme</item> <item name="colorPrimary">?attr/app_theme</item>
<item name="colorPrimaryVariant">?attr/app_theme</item> <item name="colorPrimaryVariant">?attr/app_theme</item>