我想在我的应用程序中显示动画GIF图像.正如我发现的那样,Android本身并不支持动画GIF.
但是它可以使用AnimationDrawable显示动画:
该示例使用在应用程序资源中保存为帧的动画,但我需要的是直接显示动画gif.
我的计划是将动画GIF分解为帧并将每个帧添加为可绘制到AnimationDrawable.
有谁知道如何从动画GIF中提取帧并将它们转换为Drawable?
我正在制作一个可以显示视频的动态壁纸.一开始我认为这将非常困难,所以有些人建议使用OpenGL解决方案或其他非常复杂的解决方案(例如这个).
无论如何,为此,我发现了各种各样的地方,并且基于这个github库(它有一些bug),我终于得到了它的工作.
虽然我成功地显示了一个视频,但我无法找到控制它与屏幕分辨率相比如何显示的方法.
目前它总是被拉伸到屏幕尺寸,这意味着这个(从这里拍摄的视频):
得到如下:
原因是不同的宽高比:560x320(视频分辨率)与1080x1920(设备分辨率).
注意:我很清楚缩放视频的解决方案,这些解决方案可以在各种Github存储库中找到(例如这里),但我问的是一个动态壁纸.因此,它没有View,所以它对如何做事更加有限.更具体地说,解决方案不能具有任何类型的布局,TextureView或SurfaceView或任何其他类型的View.
我尝试使用SurfaceHolder的各种领域和功能,但到目前为止没有运气.例子:
setVideoScalingMode - 它要么崩溃要么不做任何事情.
改变surfaceFrame - 相同.
这是我目前的代码(这里有完整的项目):
class MovieLiveWallpaperService : WallpaperService() {
override fun onCreateEngine(): WallpaperService.Engine {
return VideoLiveWallpaperEngine()
}
private enum class PlayerState {
NONE, PREPARING, READY, PLAYING
}
inner class VideoLiveWallpaperEngine : WallpaperService.Engine() {
private var mp: MediaPlayer? = null
private var playerState: PlayerState = PlayerState.NONE
override fun onSurfaceCreated(holder: SurfaceHolder) {
super.onSurfaceCreated(holder)
Log.d("AppLog", "onSurfaceCreated")
mp = …Run Code Online (Sandbox Code Playgroud) 我有一个小型动态壁纸应用程序,我想添加支持它来显示GIF动画.
为此,我找到了各种解决方案.有一种在视图(这里)中显示GIF动画的解决方案,甚至还有一个解决方案,可以在动态壁纸(这里)中显示它.
但是,对于它们两者,我无法找到如何在其所拥有的空间中很好地拟合GIF动画的内容,这意味着以下任何一种情况:
这些都不是关于ImageView的,所以我不能只使用scaleType属性.
有一个解决方案可以为你提供一个GifDrawable(这里),你可以在ImageView中使用它,但在某些情况下它似乎很慢,我无法弄清楚如何在LiveWallpaper中使用它然后适合它.
LiveWallpaper GIF处理的主要代码就是这样(这里):
class GIFWallpaperService : WallpaperService() {
override fun onCreateEngine(): WallpaperService.Engine {
val movie = Movie.decodeStream(resources.openRawResource(R.raw.cinemagraphs))
return GIFWallpaperEngine(movie)
}
private inner class GIFWallpaperEngine(private val movie: Movie) : WallpaperService.Engine() {
private val frameDuration = 20
private var holder: SurfaceHolder? = null
private var visible: Boolean = false
private val handler: Handler = Handler()
private val drawGIF …Run Code Online (Sandbox Code Playgroud) 我想在Android应用程序中显示动画GIF图像,如下图所示.我尝试过webview但没有成功.如何在应用程序中显示动画gif?
我正在制作一个Android应用程序,我想在imageview中播放一个GIF文件.我尝试了很多方法,做了一个自定义类但没有成功.
有没有人以前实现过这个?