int imageNum =0;
@Override
public void onPictureTaken(byte[] data, Camera mCamera) {
String Name = PatientInfo.getText().toString();
String Age = PatientAge.getText().toString();
String Id = PatientId.getText().toString();
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Date d = new Date();
CharSequence s = DateFormat.format("MM-dd-yy hh-mm-ss", d.getTime());
Rname = "Raw"+s.toString() + "_img_"+ String.valueOf(imageNum)+".jpg";
File imagesFolders = new File(Environment.getExternalStorageDirectory().toString() + "/" + Name + Age + gender +Id);
imagesFolders.mkdirs();
File output = new File(imagesFolders, Rname);
while (output.exists()) {
imageNum++;
Rname = "Raw"+s.toString() + "_img_"+ String.valueOf(imageNum) +".jpg";
output = new File(imagesFolders, Rname);
}
Uri uriSavedImage = Uri.fromFile(output);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
OutputStream imageFileOS;
try {
imageFileOS = getContentResolver().openOutputStream(uriSavedImage);
imageFileOS.write(data);
imageFileOS.flush();
imageFileOS.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
finally {
}
Log.d("Log", "onPictureTaken - jpeg");
这是我的代码的一部分。我试图将图像保存在文件夹中,并增加文件名。每次单击时,图像都会保存在RAW16-01-1405-20-22_img_0的文件夹中。每次拍照时, img 都必须增加。有人可以帮忙吗?我的代码中的错误在哪里?
答案 0 :(得分:0)
在摘录中,
while (output.exists()){
imageNum++;
Rname = "Raw"+s.toString() + "_img_"+ String.valueOf(imageNum) +".jpg";
output = new File(imagesFolders, Rname);
}
改变它
while (output.exists()){
imageNum++;
Rname = "Raw"+s.toString() + "_img_"+ String.valueOf(imageNum) +".jpg";
}
imageNum++;
Rname = "Raw"+s.toString() + "_img_"+ String.valueOf(imageNum) +".jpg";
output = new File(imagesFolders, Rname);
答案 1 :(得分:0)
不确定你的问题究竟是什么,但你应该坚持使用imageNum计数器,因为一旦创建了一个新的实例,它将被重置为0,这将很快发生。
使用 SharedPreferences 或类似内容来保留它。
答案 2 :(得分:0)
while (output.exists()){
imageNum++;
Rname = "Raw"+s.toString() + "_img_"+ String.valueOf(imageNum) +".jpg";
output = new File(imagesFolders, Rname);
}
Rname = "Raw"+s.toString() + "_img_"+ String.valueOf(imageNum) +".jpg";
output = new File(imagesFolders, Rname);
while循环以Rname结尾,输出具有最后一个现有文件的值。你也需要给新的值。