我正在运行一个程序,在小部件中显示 .gif 图像,它工作得很好,但是当我使用 kivy 启动器运行此应用程序时,即使图像没有背景,.gif 图像也会带有一个方框。
任何人有任何想法,为什么这在 Android 和 Windows 上表现不同。
请参阅下面的 .kv 代码作为我如何使用 .gif 图像的示例。我使用这个 .gif 图像作为按钮。
<ButImage@ButtonBehavior+AsyncImage>
canvas.before:
Color:
rgb: (0, 0, 1)
PushMatrix
Rotate:
axis: 0,0,1
angle: 20
origin: self.center
source: "images/butterflybluex.gif"
canvas.after:
PopMatrix
...
首先确保您打包了 pil/pillow [只需将其添加到构建 apk 时的要求之一]以进行 gif 加载,否则将使用对于 android 来说非常慢的纯 python 加载器,其次请详细说明您的意思方盒?
更新:您更新的示例显示您正在将 AsyncImage 与本地源一起使用,异步图像将与本地源的远程 url 一起使用,您只需使用Image
class.
第二:如果你得到的是白色背景而不是图像,那么你给了它错误的路径。确保您的图像存在于目录中或者您的目录存在于启动器上的正确位置。
更新 3:前面提到的问题是使用 pil 的 gif 图像加载器。并非所有图像都适用。它可以在您的桌面上运行,因为未安装 pil,而是使用纯 python gif 加载器。由于速度问题,此加载程序无法在 Android 上使用。
一种解决方法是使用 gimp 打开并保存图像。那么它应该可以正常工作。
另一种方法是贡献和修复:使用 pil for gif 的加载程序...(我必须警告网络上有很多不同的 gif,每个 gif 都有自己的细微变化。确保其中一个有效会导致其他 gif 损坏。)
要在桌面上重现您的问题,只需安装枕头即可。
使用 gif 制作动画时可能会出现许多工件,我建议您在动画中使用图像(png/jpg...).zip
并将其设置为源。这样你就可以摆脱工件。
请确保 Image 类提供的 gif 或 .zip 动画仅用于不需要大量控制动画的情况。就像不改变的静态动画一样。
如果您的动画需求超出此范围,那么您应该通过在图集中加载精灵表来手动管理动画。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)