【问题标题】:Why would android forget some assets?为什么android会忘记一些资产?
【发布时间】:2012-05-11 00:24:27
【问题描述】:

我的问题:实际上只有一张图片会从 assets 文件夹中加载。我有所有的图片,当我尝试访问 任何它们时 我不要出现错误。 实际加载是指它在屏幕上显示图像。当我加载其他图像时,整个屏幕都变白了。

在每种情况下,我都会将整个图像加载到整个屏幕。

如果我将图像作为其大小的四分之一放在屏幕中间,那么那里会有一个白色矩形。图像应该在 .apk 中,因为我没有得到游戏试图找到它的错误。但是,如果我要加载这张图片,那么一切都很好。

可以找到的一个图像是 .png 图像,我尝试将其他图像加载为 .png,但它不起作用。

关于从哪里开始有什么建议吗?


我通过 AssetManager.readAsset() 加载图像作为输入流,然后使用位图工厂将图像作为位图获取。之后我将位图加载到 open gl 并绘制我想要的区域。但是,问题只是我目前开始使用作品的第一张图像。 eclipse生成的文件会不会有问题?

【问题讨论】:

  • 我只是用一个新的红框图像复制了我制作另一张图像的方法……红框变成了白色!!! :(
  • 我有一页又一页的代码(游戏)...什么代码有用?它以前工作得很好……为什么现在停止了?我整天都在绘制图像,没有更改任何代码。从资产文件夹中加载它,我之前使用的一个 .png 地图集现在正在工作。但是,所有其他图像都无法正常工作,因为它们较新。我正在重新启动手机、eclipse,然后将清理项目并回复您的结果。
  • 所以得到这个,我做了上面所说的一切。现在我什至没有得到白色,但如果我使用我的 Loading_Atlas.png 它每次都有效。真的开始气死我了。我重新启动一切,清理,制作新图像......等等。仍然......没有运气或任何东西。接下来你们会尝试什么?
  • 好的,所以我打开了 .apk 文件,所有图像都以正确的名称存在。必须加载和读取图像,但由于某种原因,它没有显示正确的颜色,而是显示为白色。我改变了分辨率,没有什么不同。我看着其他人描述我的问题,他们忘记了融合他们的形象,这里不是这种情况。事实上,我不想混合图像,因为我只想显示我在 gimp 中绘制的红色方块,但它不起作用。当然,更复杂的 png 图像图集仍在工作......没有意义。

标签: android image loading assets


【解决方案1】:

一些png bug android。

尝试打开它们并用 gimp 保存它们。有时它可以解决问题。

【讨论】:

  • 我之前试过,又试了一次。不工作。还尝试制作新图像。什么都没有...用过.jpeg...什么都没有... :(
【解决方案2】:

终于找到解决办法了。

事实证明,一个有效的图像具有 32 位深度,而其他图像只有 24 位深度。

解决方案是在 gimp 中打开图像,添加一个 alpha 通道(使其成为 32 位),然后将其保存为 .png 文件。然后阅读详细信息,它应该是 32 位的。

谢谢大佬! :)


另请注意,图像必须是 2 的幂。例如,它必须是 1024 x 1024。

【讨论】: