Android 움직이는 이미지를 액티비티에 넣는 방법에 대해 알아봅시다.
움직이는 이미지를 삽입하기 위해서는 우선 움직이는 이미지가 필요합니다.
움직이는 이미지를 구하는 방법 및 적용하는 방식에 대해 알아봅시다.
Lottie에서 이미지 파일 구하기
Lottie 사이트를 통해 앱의 UI에 맞는 이미지를 찾아봅시다.
간단한 회원가입 및 로그인으로 무료 이미지를 구할 수 있습니다.
Discover > Free Animations 메뉴를 통해 무료 이미지를 찾아볼 수 있습니다.
원하는 이미지를 클릭 후 꼭 'Lottie JSON'으로 다운로드합니다.
이것으로 움직이는 이미지를 만들었습니다.
이제 Android Studio를 통해 해당 이미지를 화면에 적용해 봅시다.
Android Studio에 이미지 삽입하기
우선 안드로이드 기본 라이브러리에는 제공되지 않는 기능이기에 Lottie 라이브러리를 Dependencies에 추가해야 합니다.
저는 v5.0.2 버전을 사용했습니다.
build.gradle (app)
dependencies {
...
implementation 'com.airbnb.android:lottie:5.0.2'
}
이제 다운로드한 JSON 파일을 assets 폴더에 넣어두기 위해 assets 폴더를 생성합니다.
다운로드 받은 JSON 파일을 Ctrl+C 복사 후 생성된 assets 폴더에 Ctrl+V로 붙여 넣기 합니다.
액티비티 화면에 이미지 적용하기
Layout 에 해당 JSON 파일을 연결시키도록 합니다.
적용할 이미지를 Activity Layout 에 코드를 삽입합니다.
중요한 부분은 다운로드한 JSON 파일의 이름을 'lottie_fileName' alias에 넣어줘야 합니다.
각 속성 값의 내용은 다음과 같습니다.
app:lottie_fileName="5506-networked-data.json" > JSON 파일명 지정.
app:lottie_autoPlay="true" > Activity 가 실행될때 자동 실행 여부
app:lottie_loop="true" > 움직임을 반복적으로 실행할건지 여부
적용된 이미지 확인
이렇게만 적용해도 움직이는 이미지 재생이 가능합니다.
이미지를 컨트롤할 수 있는 코드 및 리스너 설정
이미지 노출까지는 완료했고 이제 리스너를 통해 이미지를 제어해 보도록 합시다.
위에서 Layout 에서 설정했던 반복/자동 실행 부분은 아래 코드로 제어 가능합니다.
LottieAnimationView animationView = root.findViewById(R.id.ono_btn);
animationView.setSpeed(1f);
animationView.setVisibility(View.VISIBLE);
animationView.playAnimation(); //애니메이션 실행
//animationView.pauseAnimation(); //애니메이션 중지
animationView.addAnimatorListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
}
@Override
public void onAnimationEnd(Animator animator) {
animationView.setVisibility(View.GONE);
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
}
});
'IT > Android' 카테고리의 다른 글
Android 앱에 Font (글꼴, 폰트) 적용하기 (0) | 2022.08.05 |
---|---|
Android Studio 코드 자동 정렬하기 (0) | 2022.08.02 |
Android Firebase Crashlytics 적용하기 (0) | 2022.07.29 |
Android Button 모서리 둥글게 만들기 (feat. Radius) (0) | 2022.07.08 |
Android Studio "Loading Devices" 단말 연결 오류 (0) | 2022.07.08 |
댓글