1

在我的应用程序中,我打开相机并希望以特定名称保存该文件。我使用这段代码:

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");  
                    }   
}

它确实打开了相机,我可以拍摄并保存照片,但它没有给出好名字。每次我保存图片时,他都会给图片起一个名字,1个名字的例子是:“13333675392558.jpg”。我不明白他是怎么得出这样的数字的。

为什么我的代码不应用名称:“new-photo-name.jpg”?

和/或那我做错了什么?

已经谢谢了, Bigflow

4

2 回答 2

1
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

是设置文件名的行。这条线你必须改变。

于 2012-04-02T12:13:09.150 回答
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());
      }
}

非常小的代码,但就像一个魅力

于 2012-04-02T13:46:39.053 回答