我有10张图片,想要将所有这些图像保存在Android应用程序内存中。因此,无论何时使用安装此应用程序,他都已经拥有了所有这些图像。
我有很多次硬编码而没有得到很好的回应。
有什么办法吗?所以我会完成它。
请帮帮我
答案 0 :(得分:1)
将所有图片存储在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();
答案 1 :(得分:0)
您可以将文件保存在资产或资源文件夹中,此处我将文件保存在res / drawable /中,并在需要时将其复制到SD卡上。在下面的代码中我们首先检查文件是否不存在我们从drawable创建一个位图并将文件写入sdcard。
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" />