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