애니메이션 GIF는 커뮤니케이션과 자기 표현을 향상시켜 대화에 동적이며 참여를 유도하는 요소를 추가하여 사용자가 정적 이미지나 텍스트만 사용할 때보다 더 효과적으로 감정, 반응, 유머를 전달할 수 있도록 합니다. 온라인 문화에서 GIF가 인기를 얻고 있으므로 최신 기능과 풍부한 멀티미디어 환경을 기대하는 사용자에게 관련성 있고 매력적인 서비스를 제공하려면 GIF를 통합하는 것이 필수적입니다.
이미지 로드 라이브러리를 사용하여 애니메이션 GIF 표시
이미지 로드 라이브러리는 많은 까다로운 작업을 처리하며, 애니메이션 GIF와 같은 기능에 이전 버전과 호환되는 지원을 추가하는 경우가 많습니다. 다음 코드는 애니메이션 GIF 재생을 구현하는 방법을 Coil 이미지 로드 라이브러리:
GIF의 Coil 종속 항목 추가:
implementation("io.coil-kt:coil-gif:2.6.0")
Android 9(API 수준 28)에 추가된 플랫폼 ImageDecoder와 이전 버전과의 호환성을 위한 Coil의 GifDecoder를 모두 사용하여 GIF 지원 로더를 만듭니다.
val gifEnabledLoader = ImageLoader.Builder(this)
.components {
if ( SDK_INT >= 28 ) {
add(ImageDecoderDecoder.Factory())
} else {
add(GifDecoder.Factory())
}
}.build()
Coil AsyncImage 컴포저블에서 gifEnabledLoader 사용:
AsyncImage(
imageLoader = gifEnabledLoader,
...
)
Android 플랫폼 지원을 사용하여 애니메이션 GIF 표시
AsyncImage(
model = request,
imageLoader = videoEnabledLoader,
contentDescription = null
)
Android 9 이상(API 수준 28)에서는 애니메이션 GIF 파일을 기본적으로 지원합니다. 이 Accompanist 라이브러리의 도움을 받아 Jetpack Compose는 애니메이션을 재생할 수 있습니다.
드로어블 페인터를 지원하도록 Accompanist 라이브러리 종속 항목 추가:
implementation("com.google.accompanist:accompanist-drawablepainter:0.35.0-alpha")
AnimationImageDrawable에 애니메이션 GIF를 로드하는 메서드 만들기 다음과 같이 ImageDecoder를 사용합니다.
private fun createAnimatedImageDrawableFromImageDecoder(context: Context, uri: Uri): AnimatedImageDrawable {
val source = ImageDecoder.createSource(context.contentResolver, uri)
val drawable = ImageDecoder.decodeDrawable(source)
return drawable as AnimatedImageDrawable
}
rememberDrawablePainter를
AnimatedImageDrawable:
Image(
painter = rememberDrawablePainter(
drawable = createAnimatedImageDrawableFromImageDecoder(applicationContext, mediaUri)),
contentDescription = "animated gif"
)
이미지 키보드 및 기타 리치 콘텐츠의 GIF 파일 지원
애니메이션 GIF 파일은 Google의 Gboard를 비롯한 많은 Android 키보드에서 인기 있는 기능입니다. 모든 종류의
스티커 또는 애니메이션의 출처인지 여부
앱에서 OnReceiveContentListener를 사용하는 것입니다.
다음에 대한 지원을 구현하는 방법에 대해 자세히 알아보려면 리치 콘텐츠 받기를 참조하세요. 앱에 GIF 애니메이션 및 기타 리치 미디어 수신