어떠한 요청이 이루어지는 동안 UI가 아무런 변동이 없다면 사용자들은 당황스러울 것이다

만약 그 요청이 시간이 오래 걸리는 작업이라면!!!

사용자들은 답답해 하며 다시는 내가 만든 앱을 쓰지 않겠지...ㅜ_ㅜ?

이를 방지하기 위해 적절한 로딩 애니메이션이 필요할 것이다.

대표적인 라이브러리 Lottie 가 있다.

자세한 것은 링크를 참고

Free Lottie Animation Files, Tools & Plugins - LottieFiles

Fragment 를 만들어준다.

xml 에 아래와 같이 코드를 작성해주고

<com.airbnb.lottie.LottieAnimationView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:lottie_autoPlay="true"
      app:lottie_loop="true"
      app:lottie_rawRes="@raw/img_loading"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintLeft_toLeftOf="parent"
      app:layout_constraintRight_toRightOf="parent"
      app:layout_constraintTop_toTopOf="parent" />

java 코드에는

public class LoadingFragment extends DialogFragment {

    public static LoadingFragment newInstance() {
        LoadingFragment fragment = new LoadingFragment();
        Bundle args = new Bundle();
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_loading, container, false);
        getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        setStyle(DialogFragment.STYLE_NO_FRAME, android.R.style.Theme);
        return view;
    }

    public static void showProgressDialog(FragmentActivity activity){
        new LoadingFragment();
        LoadingFragment.newInstance().show(activity.getSupportFragmentManager(),"");

    }

}