2

我的应用程序中需要 6 张大图像。而且我不需要PNG提供的质量和alpha通道。有没有办法在程序首次启动时将 JPEG 文件嵌入原始资源并展开到 SD 卡中?它会在我的 APK 中节省 3-4 MB。谢谢!

4

3 回答 3

2

这很容易。将您的文件放在 res/raw 文件中并使用:

InputStream is = getResources().openRawResource(R.raw.image);
BitmapFactory.decodeStream(is);

您可以简单地打开流并对数据做任何您想做的事情。

于 2013-03-19T11:00:32.213 回答
0

没有什么能阻止您将 JPEG 图像放入资源文件夹中,或者assets如果您不需要这些东西,则放入文件夹中R.drawable.MY_IMAGE

但是,这些图像仍会包含在您的 APK 中,即使您将它们复制到 SD 卡,也无法从您的应用程序包中删除它们。

唯一的方法是在您的应用程序首次启动时从 Web 服务器单独下载图像。

如果您的应用程序需要大文件,Google Play 商店也提供了一些便利,但这似乎有点矫枉过正

于 2013-03-19T11:03:01.650 回答
0

我想我不明白您的问题:您似乎想在第一次运行时删除图像文件......

无论如何,我建议将文件放在资产文件夹而不是资源中。您可以将资产作为文件系统访问并将它们复制到任何(允许的)位置。

看看这里: /res 和 /assets 目录之间的区别

在这里(查看资产):http: //developer.android.com/tools/projects/index.html

编辑:

我的回答建议使用资产而不是资源,但是您不能在运行时修改您的 apk,请看这里:

我们如何在android运行时从资产文件夹中删除文件?

于 2013-03-19T11:12:56.990 回答