Android加载AnimatedImageDrawable播放gif动态图,Kotlin
import android.graphics.ImageDecoder
import android.graphics.ImageDecoder.OnHeaderDecodedListener
import android.graphics.drawable.AnimatedImageDrawable
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.AppCompatImageView
import androidx.lifecycle.lifecycleScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val iv = findViewById<AppCompatImageView>(R.id.iv)
lifecycleScope.launch(Dispatchers.IO) {
val source = ImageDecoder.createSource(resources, R.drawable.mygif)
val drawable = ImageDecoder.decodeDrawable(source, object : OnHeaderDecodedListener {
override fun onHeaderDecoded(
decoder: ImageDecoder,
info: ImageDecoder.ImageInfo,
source: ImageDecoder.Source
) {
Log.d("fly", "isAnimated=${info.isAnimated}") //是否是gif动画
}
})
iv.setImageDrawable(drawable)
if (drawable is AnimatedImageDrawable) {
//drawable.repeatCount=999 循环重复播放gif动态图的次数。
drawable.start() //开始播放。
}
}
}
}
Android加载Gif图片的一般方法:Movie实现-CSDN博客文章浏览阅读8k次。Android加载Gif图片的一般方法:Movie实现Android的ImageView无法直接加载Gif图片,如果需要在自己的代码中加载一个gif图片(这很常见,比如下载过程中的loading以示正在下载的转动的圆球),则无法直接用ImageView。鉴于此,Android社区开发者为解决此问题贡献了很多解决方案,其中一种比较简易且比较流行的做法是通过Android Movie的方式https://blog.csdn.net/zhangphil/article/details/50441944android Glide加载gif动图和本地视频,Java_glide加载视频_zhangphil的博客-CSDN博客文章浏览阅读867次。droid Glide加载gif动图和本地视频,Java。_glide加载视频https://blog.csdn.net/zhangphil/article/details/129451106