我是Android新手。我想通过手机拍照捕捉图片,并试图从手机画廊拍照。在这种情况下,我成功地从画廊拍摄照片,但在通过相机拍照时,我面临一个问题,即覆盖方法protected void onActivityResult(int requestcode,int resultcode,Intent data)
不起作用,错误显示,它也阻碍了从画廊拍摄照片的先前覆盖方法。我想一次做两件作品。所以我现在必须做的事情
我已经创建了 private static final int 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);
}
}
所以当我想要添加另一个受保护的void onActivityResult(int requestCode,int resultCode,Intent data)方法时,它会显示错误并告知它已经创建了
答案 0 :(得分:0)
您不能拥有两个具有完全相同名称和参数列表的方法。相反,您应该将代码添加到现有的onActivityResult()
方法中,以实现从相机中检索图片的逻辑。只需在现有else if
语句中添加if
子句:
if (resultcode == RESULT_OK) {
if (requestcode == PICK_IMAGE) {
// get image from gallery
} else if (requestcode == CAMERA_REQUEST) {
// get image from camera
}
}
答案 1 :(得分:-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
}
}