从您的问题和评论中我可以了解到您想要将 n 张图像保存到 SDCard。
要保存,请按照步骤操作
STEP 1:获取您需要的所有图像。确保您在此处正确获取图像列表。
STEP 2:计算列表中图像的数量并将其存储在变量中
int numberOfImages = 15;// Get it dynamically
STEP 3:现在循环它以按顺序存储所有图像
//Create Directory to store images in SDCard
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/saved_images");
if(!myDir.exists()){
myDir.mkdirs();
}
// You have to get next image here from the resource here
bm = BitmapFactory.decodeResource( mContext.getResources(), images[i]);// value for itemPos should be given here.
// Get Last Saved Number
SharedPreferences savedNumber = getSharedPreferences(PREFS_NAME, 0);
int lastSavedNumber = savedNumber.getInt("lastsavednumber",0);
lastSavedNumber++;
String fname = "Image-"+lastSavedNumber+".png";
File file = new File (myDir, fname);
if (file.exists ()) {file.delete (); }
try {
FileOutputStream out = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.JPEG, 90, out);//Your Bitmap from the resouce
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
//To Store the last Number
SharedPreferences saveNumber = getApplicationContext().getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editorset = saveNumber.edit();
editorset.putInt("lastsavednumber",lastSavedNumber);
editorset.commit();
如果您在第一步中做错任何事情,则可能会发生重复。
EDIT按顺序存储所有图像 使用 SharedPreferences 存储最后保存的图像编号。
public static final String PREFS_NAME = "ImageNumber";
// Get Last Saved Number
SharedPreferences savedNumber = getSharedPreferences(PREFS_NAME, 0);
int lastSavedNumber = savedNumber.getInt("lastsavednumber",0);
lastSavedNumber++;
String fname = "Image-"+lastSavedNumber+".png";
//To Store Last Saved Number
SharedPreferences saveNumber = getApplicationContext().getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editorset = saveNumber.edit();
editorset.putInt("lastsavednumber",lastSavedNumber);
editorset.commit();