从RAW资源加载JPEG

时间:2013-03-19 10:54:27

标签: android jpeg android-image

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

3 个答案:

答案 0 :(得分:2)

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

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

您只需打开流,然后根据数据执行任何操作。

答案 1 :(得分:0)

如果您不需要assets内容,则无法阻止您将JPEG图像放在资源文件夹或R.drawable.MY_IMAGE文件夹中。

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

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

如果您的应用程序需要大文件,Google Play商店也会提供一些功能,但这似乎有点过分

答案 2 :(得分:0)

我想我不明白你的问题:你似乎想在第一次运行时隐藏图像文件......

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

看看这里: Difference between /res and /assets directories

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

修改

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

how we can remove a file from the assets folder at runtime in android?