使用图像按钮的图像视图

时间:2017-07-21 17:27:27

标签: java android

我是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)方法时,它会显示错误并告知它已经创建了

2 个答案:

答案 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
    }  
}