使用意图相机时为图像命名

Posted

技术标签:

【中文标题】使用意图相机时为图像命名【英文标题】:Give name to image when used intent camera 【发布时间】:2012-04-02 12:05:45 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

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

【讨论】:

将其更改为:intent.putExtra(MediaStore.EXTRA_OUTPUT, "new-photo-name.jpg"); 但不知何故,这不起作用。 字符串不是 Uri。我不知道这是否是最好的,我的应用程序使用 Uri.fromFile(new File(String fileName)) 我改了代码,这样更容易看。但这也行不通:( 我刚刚注意到您的代码中有“onActivityResult1”。这里真的有“1”吗?如果有,请删除它,然后重试:) 哦,我删除了它,但不知何故,它仍然无法正常工作。我认为它在代码中的其他地方出错了,我现在将搜索问题。【参考方案2】:

我得到了它的工作,但还不知道完全相同的问题,但这段代码对我有用:

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());
      

非常小的代码,但工作起来就像一个魅力

【讨论】:

以上是关于使用意图相机时为图像命名的主要内容,如果未能解决你的问题,请参考以下文章

相机意图图像预览方向

为啥使用相机意图捕获的图像会在 Android 上的某些设备上旋转?

仅带有图像选项的相机意图

android中相机捕获的隐式意图

相机意图打开相机应用程序(仅第一次)

告诉相机意图保存拍摄的图像