【问题标题】:Get image from image view and then crop (Android Image Cropper Library)从图像视图中获取图像然后裁剪(Android Image Cropper Library)
【发布时间】:2017-12-07 13:52:48
【问题描述】:

您好,我一直在使用 Android Image Cropper 库,尽管我已经能够通过从图库中获取图像来裁剪图像。

但是,如果我只是从 Imageview 中获取图像而不是从图库或相机中选择,我将如何启动图像裁剪活动?

我进行了研究,但您只能在使用图像 URI 时启动裁剪活动,但也许其他人已经能够做到。

这是我的活动:

  private Uri mCropImageUri;

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    txtExtracted = (TextView) findViewById(R.id.txtRetrieved);

    btnStartCrop = (Button) findViewById(R.id.btnStartCrop);

    imageView = (ImageView) findViewById(R.id.imgView);

    View v1 = getWindow().getDecorView().getRootView();
    v1.setDrawingCacheEnabled(true);
    Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache());
    imageView.setImageBitmap(bitmap);

   btnStartCrop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });
  }

@Override
@SuppressLint("NewApi")
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) {
            ((ImageView) findViewById(R.id.quick_start_cropped_image)).setImageURI(result.getUri());
            Toast.makeText(this, "Cropping successful, Sample: " + result.getSampleSize(), Toast.LENGTH_LONG).show();
        } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
            Toast.makeText(this, "Cropping failed: " + result.getError(), Toast.LENGTH_LONG).show();
        }
    }
}

private void startCropImageActivity(Uri imageUri) {
    CropImage.activity(imageUri)
            .setGuidelines(CropImageView.Guidelines.ON)
            .setMultiTouchEnabled(true)
            .start(this);
}

提前感谢您对此的任何帮助,如果有人有意见或更好的方法,将不胜感激:D

【问题讨论】:

    标签: android cropper


    【解决方案1】:

    你可以试试picaso

    @Override
    @SuppressLint("NewApi")
    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) {
    
                Picasso.with(this)
                    .load(result.getUri())
                    .into(((ImageView) findViewById(R.id.quick_start_cropped_image)));
    
            } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
                Toast.makeText(this, "Cropping failed: " + result.getError(), Toast.LENGTH_LONG).show();
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-01-05
      • 1970-01-01
      • 2020-04-08
      • 2014-10-18
      • 2016-05-04
      • 2019-02-07
      • 1970-01-01
      • 2022-01-27
      相关资源
      最近更新 更多