在我的应用程序中,我打开相机并希望使用特定名称保存该文件。 我使用这段代码:
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File("new-photo-name.jpg")) );
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
protected void onActivityResult1(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_PIC_REQUEST) {
Bitmap image = (Bitmap) data.getExtras().get("data");
}
}
它打开相机,我可以拍摄并保存照片,但它没有给出好名声。 每当我保存图片时,他给图片另一个名字,一个名字的例子是:“13333675392558.jpg”。我不明白他是如何得到这种数字的。
为什么我的代码不适用名称:“new-photo-name.jpg”?
和/或者我错了什么呢?
非常感谢,Bigflow
答案 0 :(得分:1)
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
是设置文件名的行。你必须改变这条线。
答案 1 :(得分:0)
我得到了它的工作,但还不知道完全相同的问题,但这段代码对我有用:
private Uri outputFileUri;
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(), "/DCIM/Camera/new-photo-name.jpg");
outputFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, TAKE_PICTURE);
}
onLongPress与手势(触摸)动作有关,你也可以在这里使用按钮。
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == TAKE_PICTURE){
System.out.println("string of file name = "+outputFileUri.toString());
}
}
真的很小的代码,但就像一个魅力