2017-07-21 30 views
-1

我是Android新手。我想通过手机相机捕捉图片,并尝试从手机画廊拍摄照片。在这种情况下,我成功完成了从画廊拍摄照片的一个步骤,但在通过照相机拍摄照片时,我遇到了覆盖方法protected void onActivityResult(int requestcode,int resultcode,Intent data)不起作用的问题,错误显示并且还妨碍了先前的覆盖从画廊拍照的方法。我想一次做两件作品。所以我现在要做的使用图像按钮进行图像查看

我已经创建 私人静态最终诠释PICK_IMAGE = 150; Uri imageUrl;

private void openGallery() { 

    Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI); 
    startActivityForResult(intent,PICK_IMAGE); 
} 

@Override 
protected void onActivityResult(int requestcode,int resultcode,Intent data){ 
    super.onActivityResult(requestcode,resultcode,data); 
    if(resultcode == RESULT_OK && requestcode == PICK_IMAGE){ 
     imageUrl = data.getData(); 
     im.setImageURI(imageUrl); 
    } 
} 

所以,当我想添加一个保护无效onActivityResult(INT requestCode,INT resultCode为,意图数据)的方法,它显示的错误,并告诉它已经创建

+0

欢迎堆栈溢出。如果您向我们展示实际的代码而不是用英文来描述它,那将是最好的。请务必阅读[mcve]了解一些提示。 –

回答

0

不能有两种方法使用完全相同的名称和参数列表。相反,你应该将代码添加到现有的onActivityResult()方法来实现逻辑检索从camera.Just知情同意增加一个else if条款现有if声明:

if (resultcode == RESULT_OK) { 
    if (requestcode == PICK_IMAGE) { 
     // get image from gallery 
    } else if (requestcode == CAMERA_REQUEST) { 
     // get image from camera 
    } 
} 
+0

感谢您的合作 –

+0

@JannatullHaque如果我的答案解决了您的问题,请务必点击左边的复选标记来接受它。 –

-1

,你可以用这个拍照从照相机上的按钮点击或任何图像

photoButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(cameraIntent, CAMERA_REQUEST); 
     } 
    }); 

**此方法将当你点击打电话**

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) { 
     Bitmap photo = (Bitmap) data.getExtras().get("data"); 
     imageView.setImageBitmap(photo);//set image to Imageview 
    } 
} 
+0

'Bundle'没有'get()'方法,所以这个答案不会被编译。相反,我认为你需要做'data.getStringExtra(“data”);'这是图形文件的URI。 –