Android 保存图像并将所有图像复制到sd卡中
我有10张图片,想把所有这些图片保存在android应用程序内存中。因此,每当有人使用安装此应用程序时,他已经拥有了所有这些图像 我已经硬编码了很多次,没有得到很好的回应 有办法吗。所以我会做的Android 保存图像并将所有图像复制到sd卡中,android,eclipse,android-image,Android,Eclipse,Android Image,我有10张图片,想把所有这些图片保存在android应用程序内存中。因此,每当有人使用安装此应用程序时,他已经拥有了所有这些图像 我已经硬编码了很多次,没有得到很好的回应 有办法吗。所以我会做的 请帮助我将所有图像存储在APK的资产文件夹中。安装后,扫描内存,查看是否有所需的图像。如果没有,请复制到那里。这样,即使用户清除了应用程序的数据,您也可以将它们复制回来。另一个好处是,用户也不会知道关于它的任何信息,因此这是一个很好的用户体验。唯一的问题是您的APK大小会增加,所以请相应地进行管理 试试
请帮助我将所有图像存储在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();
将所有图像存储在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();
您可以将文件保存在您的资产或res文件夹中,在这里,我将文件保存在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" />
您可以将文件保存在资产或res文件夹中,我已将文件保存在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" />
使用资产文件夹可能会有帮助。是否需要在资产中创建任何子文件夹或直接复制所有imagesCreate资产文件夹,请确保此文件夹与res/src/using assets文件夹处于同一级别可能会有帮助。是否需要在资产中创建任何子文件夹或直接复制所有imagesCreate资产文件夹,确保此文件夹与res/src/i使用的文件夹处于同一级别。第一个答案,但它给我一个例外“未能复制文件:图像”。是否需要在此处更改files=assetManager.list(“”;)。。我只需复制Assets Folder中的所有文件您只需复制图像,然后使用文件流将其复制出来。AssetManager无法区分不同的文件,因为一切都是数据流。所以,试着遵循萨米人使用它的方式。第一个答案,但它给我一个例外“未能复制文件:图像”。是否需要在此处更改files=assetManager.list(“”;)。。我只需复制Assets Folder中的所有文件您只需复制图像,然后使用文件流将其复制出来。AssetManager无法区分不同的文件,因为一切都是数据流。所以,试着遵循同样的原则