动画GIF导致SplashScreen为空
我知道这可能接近这个post的重复: Splashscreen中的动画GIF
但是,因为它似乎没有答案,我无法评论它或任何我很抱歉重新发布这个,但如果有人能给我一个答案,那将是很棒的。
我正在制作游戏,这个游戏需要花费很多时间才能开始。 因此,我想在加载屏幕期间给用户反馈,以便他知道应用程序没有崩溃。 这就是我使用java 7中的SplashScreen API的原因。
在eclipse中,当我在VM Arguments中使用以下配置运行我的应用程序时, SplashScreen.getSplashScreen()
返回null
。
-splash:src/aapplication/Splash.gif
但是当我使用这个配置时,它工作正常(我必须在同一个包中的文件,一个是Splash.png
和另一个Splash.gif
):
-splash:src/aapplication/Splash.png
在jar文件中(在MANIFEST.MF
),这不起作用:
SplashScreen-Image: aapplication/Splash.gif
虽然这样做:
SplashScreen-Image: aapplication/Splash.png
我的GIF大小约为1Mb,而PNG大约为50kb。
任何人都可以向我解释为什么在PNG的情况下甚至无法加载GIF(我知道它不是路径,因为它们有相同的)?
我看到的每个地方都说它应该和PNG一样好用。
谢谢你的帮助!
我想你会发现问题归结为两件事……
- 使用命令行参数(-splash),Java期望映像是文件系统上的文件,而清单文件期望它是嵌入式资源。
- Java似乎无法播放优化的gif,即gifs,其帧代表最后一帧和当前帧之间的差异,而不是完整的图像(就闪屏而言)。
我试过用
和
第一张图片失败了,但是第二张图片工作了,差异就像我所知道的那样,第一张是优化的,第二张不是……