【问题标题】: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

【问题讨论】:

    标签: java android image save mediastore


    【解决方案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());
          }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-13
      • 1970-01-01
      相关资源
      最近更新 更多