我有10个图像,并希望将所有图像保存在android应用程序内存中。所以无论何时使用安装这个应用程序,他已经拥有了这些所有图像。保存图像并复制SD卡中的所有图像
我硬编码很多次,没有得到很好的回应。
有什么办法。所以我会做到这一点。
请帮我
我有10个图像,并希望将所有图像保存在android应用程序内存中。所以无论何时使用安装这个应用程序,他已经拥有了这些所有图像。保存图像并复制SD卡中的所有图像
我硬编码很多次,没有得到很好的回应。
有什么办法。所以我会做到这一点。
请帮我
将所有图片存储在APK的资产文件夹中。安装完成后,扫描内部存储器以查看是否有需要的图像。如果没有,请将其复制到那里。这样,即使用户清除了应用程序的数据,也可以将其复制回来。另一件好事是用户也不会了解它,所以它是一种很好的用户体验。唯一的事情是你的APK的大小会增加,所以应该进行相应的管理。
尝试下面的代码
InputStream inputStream = getAssets().open("yourfile.jpg");
OutputStream out = new FileOutputStream(new File("/sdcard/yourfile.jpg"));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
inputStream.close();
out.flush();
out.close();
位于同一级别,我正在使用它。 http://stackoverflow.com/questions/4447477/android-how-to-copy-files-in-assets-to-sdcard的第一个答案,但它给了我例外“未能复制驴文件:图像”。我需要改变这里files = assetManager.list(“”); ..我简单地复制ASSESTS文件夹中的所有文件 –
您必须简单地复制图像,然后使用文件流将其复制出来。 AssetManager无法区分不同的文件,因为它是一切数据流。所以请尽量遵循相同的步骤 –
你可以在你的资产或资源文件夹中的文件,在这里我一直在res /绘制的文件/文件并复制它们的SD卡,当我需要。在下面的代码中,我们首先检查文件是否存在,然后我们从drawable创建一个位图并将文件写入到SD卡中。
File file = new File(pathExt+"/Pictures/", "s1.png");
if(isSDCARDMounted()){
if (!file.exists()) {
bmp = BitmapFactory.decodeResource(getResources(),
R.drawable.s1);
try {
FileOutputStream outStream = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
outStream.flush();
outStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
isSDCARDMounted:功能,如果卡被安装或不检查
PATHEXT:外部存储目录路径
确保选中有权对外部存储
写设置变量<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
使用资产文件夹可能会有所帮助。 – Ashwani
我是否需要在资产中创建任何子文件夹或直接复制所有图像 –
创建资产文件夹,请确保此文件夹与res/src/ – dumbfingers