어떠한 요청이 이루어지는 동안 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(),"");
}
}