Android 将多个图像保存到外部存储
我的res/drawable文件夹中有50多张图像。我想将这些图像保存到外部存储器,然后在图像视图/图像切换器中逐个显示这些图像。我使用下面的代码将单个图像保存到外部存储器。但我不知道如何将所有这些图像全部(同时)保存到外部存储器中 使用以下答案:经过一些修改,使用参数调用您的方法Android 将多个图像保存到外部存储,android,Android,我的res/drawable文件夹中有50多张图像。我想将这些图像保存到外部存储器,然后在图像视图/图像切换器中逐个显示这些图像。我使用下面的代码将单个图像保存到外部存储器。但我不知道如何将所有这些图像全部(同时)保存到外部存储器中 使用以下答案:经过一些修改,使用参数调用您的方法SaveImage ... R.drawable drawableResources = new R.drawable(); Class<R.drawable> c = R.drawable.class;
SaveImage
...
R.drawable drawableResources = new R.drawable();
Class<R.drawable> c = R.drawable.class;
Field[] fields = c.getDeclaredFields();
for (int i = 0, max = fields.length; i < max; i++) {
final int resourceId;
try {
resourceId = fields[i].getInt(drawableResources);
// call save with param of resourceId
SaveImage(resourceId);
} catch (Exception e) {
continue;
}
}
...
public void SaveImage(int resId){
if (!CheckExternalStorage()) {
return;
}
Bitmap bmp = BitmapFactory.decodeResource(getResources(), resID);
try {
File dir = new File(path);
if (!dir.exists()) {
dir.mkdirs();
}
OutputStream fOut = null;
File file = new File(path, "image1.png");
file.createNewFile();
fOut = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.PNG, 100, fOut);
fOut.flush();
fOut.close();
MediaStore.Images.Media.insertImage(this.getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName());
Log.i(LOGTAG, "Image Written to Exterbal Storage");
} catch (Exception e) {
Log.e("saveToExternalStorage()", e.getMessage());
}
}
。。。
R.drawable drawable resources=新的R.drawable();
c类=R.drawable.Class;
Field[]fields=c.getDeclaredFields();
对于(int i=0,max=fields.length;i
使用以下答案:通过一些修改,使用参数调用您的方法SaveImage
...
R.drawable drawableResources = new R.drawable();
Class<R.drawable> c = R.drawable.class;
Field[] fields = c.getDeclaredFields();
for (int i = 0, max = fields.length; i < max; i++) {
final int resourceId;
try {
resourceId = fields[i].getInt(drawableResources);
// call save with param of resourceId
SaveImage(resourceId);
} catch (Exception e) {
continue;
}
}
...
public void SaveImage(int resId){
if (!CheckExternalStorage()) {
return;
}
Bitmap bmp = BitmapFactory.decodeResource(getResources(), resID);
try {
File dir = new File(path);
if (!dir.exists()) {
dir.mkdirs();
}
OutputStream fOut = null;
File file = new File(path, "image1.png");
file.createNewFile();
fOut = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.PNG, 100, fOut);
fOut.flush();
fOut.close();
MediaStore.Images.Media.insertImage(this.getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName());
Log.i(LOGTAG, "Image Written to Exterbal Storage");
} catch (Exception e) {
Log.e("saveToExternalStorage()", e.getMessage());
}
}
。。。
R.drawable drawable resources=新的R.drawable();
c类=R.drawable.Class;
Field[]fields=c.getDeclaredFields();
对于(int i=0,max=fields.length;i
for(…)循环有什么问题?@随机地说是的,这是个好主意,但是如何在这行上迭代循环位图bmp=BitmapFactory.decodeResource(getResources(),R.drawable.a01);看起来答案已经找到了一种方法:-):-/我要试试;-)(…)的循环有什么问题?@随机地说,是的,这是个好主意,但如何在这行上迭代循环位图bmp=BitmapFactory.decodeResource(getResources(),R.drawable.a01);看起来答案已经找到了一种方法:-):-/我要试试;-)请不要忘记在顶部对链接答案进行投票(如果你发现它有用)。请不要忘记在顶部对链接答案进行投票(如果你发现它有用)。