我正在使用自定义相机捕捉图像并使用日期时间保存到SD卡中,如下所示:
// Create a media file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
.format(new Date());
File mediaFile;
mediaFile = new File(mediaStorageDir.getPath() + File.separator
+ "IMG_" + timeStamp + ".jpg");
return mediaFile;
但是我必须对文件名进行一些小改动,就像下面的现有名字一样:
IMG_20140312_162137.jpg
现在我希望每当用户开始捕捉图像时,需要从001开始计数,
为 1张图片IMG_20140312_001.jpg , 2张图片IMG_20140312_002.jpg 等等。
答案 0 :(得分:3)
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
.format(new Date());
File mediaFile;
mediaFile = new File(mediaStorageDir.getPath() + File.separator
+ "IMG_" + timeStamp + getNextNumber() +".jpg");
return mediaFile;
public String getNextNumber(){
SharedPreferences prefs = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
int default = 0;
int value = prefs.getInt("PICTURE_COUNT", default);
prefs.edit().putInt("PICTURE_COUNT", ++value).commit();
return convertToDesiredFormat(value);
}
String convertToDesiredFormat(int value){
String toReturn = null;
if (value > 99)
toReturn = Integer.toString(value);
else if (value > 9)
toReturn = "0" + Integer.toString(value);
else if (value >= 0)
toReturn = "00" + Integer.toString(value);
return toReturn;
}
答案 1 :(得分:0)
然后将图像计数存储在一个共享首选项中,并且计数增加,因为你点击任何没有图片,然后再次更新共享首选项,因为如果你从堆栈清除你的应用程序,那么下次这个计数必须从最后我们使用共享偏好的原因
答案 2 :(得分:0)
在图像名称的末尾附加一个计数器,如下所示:
int count=0;
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
.format(new Date());
File mediaFile;
mediaFile = new File(mediaStorageDir.getPath() + File.separator
+ "IMG_" + timeStamp +" _00 "+ count +".jpg");
count++;
return mediaFile;
答案 3 :(得分:0)
为此,您需要在应用程序重新打开时以共享首选项保持计数器的跟踪
SharedPreferences pref;
SharedPreferences.Editor edit;
pref = context.getSharedPreferences("counter",
Context.MODE_PRIVATE);
edit = pref.edit();
edit.putInt("count" ,count++);
edit.commit();
and the get the count when next time you use the count
mediaFile = new File(mediaStorageDir.getPath() + File.separator
+ "IMG_" + timeStamp +pref.getString("count", 0))+ ".jpg");