CropActivity不onActivityResult里面片段开始(CropActivity i

2019-11-04 17:50发布

我打电话的意图来选择图像,以后可将图片裁剪成宽比(1,1),但是当我运行应用程序的画廊开幕,但是当我选择图像它关闭,回来的片段。

下面是我的按钮的代码的上点击监听器

    mImageBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            Intent galleryIntent = new Intent();
            galleryIntent.setType("image/*");
            galleryIntent.setAction(Intent.ACTION_GET_CONTENT);

            startActivityForResult(Intent.createChooser(galleryIntent, 
   "SELECT IMAGE"), GALLERY_PICK);
  }
    });

这是onActivityResult代码

   public void onActivityResult(int requestCode, int resultCode, Intent 
   data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode == GALLERY_PICK && resultCode == RESULT_OK){

        Uri imageUri = data.getData();

        CropImage.activity(imageUri)
                .setAspectRatio(1, 1)
                .setMinCropWindowSize(500, 500)
                .start(getActivity());

        Toast.makeText(SettingsActivity.this, imageUri, 
 Toast.LENGTH_LONG).show();

    }
   @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) 
 {
  if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
 CropImage.ActivityResult result = CropImage.getActivityResult(data);
 if (resultCode == RESULT_OK) {
  Uri resultUri = result.getUri();
   } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) 
{
  Exception error = result.getError();
  }
 }
}

作物的活动是没有启动和应用程序追溯到片段画面时,我选择了PIC

下面是其中i已经使用底部导航视图和使用OnActivity结果以及MainActivity的代码

  private void showPlacePicker() {
    PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
    try {
        startActivityForResult(builder.build(this), PLACE_PICKER_REQUEST);
    } catch (Exception e) {
        Log.e(TAG, e.getStackTrace().toString());
    }
 }


  @Override
   public void onActivityResult(int requestCode, int resultCode, Intent 
   data) {
    if (requestCode == PLACE_PICKER_REQUEST) {
        if (resultCode == RESULT_OK) {
 ----code---
  }
  }

Answer 1:

我在我的一个项目中使用这个库,并在我没有明确创建图像拾取,而是让库处理对我来说。 要做到这一点,在你的代码

mImageBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {


        CropImage.activity()
            .setAspectRatio(1, 1)
            .setMinCropWindowSize(500, 500)
            .start(getContext());
  }
});

处理结果:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
        CropImage.ActivityResult result = CropImage.getActivityResult(data);

        if (resultCode == RESULT_OK) {

            Uri imageUri = result.getUri();
            //handle the image



        } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
            //handle error

        } else if(resultCode == RESULT_CANCELED){
          //handle cancel case
        }
    }
}

欲了解更多信息



Answer 2:

在使用appcompact片段的情况下,我们不能用。开始(getActivity()),开始种植活动。 取而代之的是使用:

.start(getContext(), this)

这里是代码看起来像片段:

CropImage.activity(uri).setGuidelines(CropImageView.Guidelines.ON).start(getContext(), this);


文章来源: CropActivity is not starting in onActivityResult inside Fragment