【问题标题】:Fail Image cropping in AndroidAndroid中的图像裁剪失败
【发布时间】:2012-04-23 03:26:01
【问题描述】:

所以我想从图库中选择一张图片,然后对其进行裁剪:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
      "Select Picture"), PHOTO_PICKED_WITH_DATA);

好的,选择照片然后在ActivityResult上捕捉它,然后裁剪它:

Intent intent = new Intent("com.android.camera.action.CROP");
    intent.setDataAndType(mAvatarUri, "image/*");
    intent.putExtra("crop", true);
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);
    intent.putExtra("outputX", ICON_SIZE);
    intent.putExtra("outputY", ICON_SIZE);
    intent.putExtra("scale", true);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, mAvatarUri);
    intent.putExtra("return-data", true);
    startActivityForResult(intent, CROP_IMAGE);

现在,问题是当我想将其转换为字节然后将其发送到 xml 中时......它不仅需要裁剪的图像,而是整个图像本身...... 另外,我无法访问裁剪后的图像 uri,它说找不到文件! 嗯,看来我裁剪的图像毕竟没有保存......

我该如何解决这个问题?

三星 ACE 2.3.4

【问题讨论】:

    标签: android xml gallery crop


    【解决方案1】:

    在以下链接中检查此代码。

    Crop Image

    对我来说很好用..

    【讨论】:

      【解决方案2】:

      我不知道您是如何获得这种技术来裁剪图像的。但是,对我来说,我总是使用this library。它从来没有给我留下深刻印象。从 android 2.1 一直工作到 3.2(永远不要在 4.0 以后测试它)。

      我是这样做的:

      Intent cropIntent = new Intent(imageProcessActivity,
              CropImage.class);
      cropIntent.putExtra("image-path",
              FileUtil.saveTempFile(ImageProcessActivity.processedBitmap, filename));
      cropIntent.putExtra("scale", true);
      imageProcessActivity.startActivityForResult(cropIntent, ImageProcessActivity.INTENT_CROP_CODE);
      

      这里是捕获结果的方法:

      if (requestCode == INTENT_CROP_CODE && resultCode == RESULT_OK) {
          Bundle extras = intent.getExtras();
          if (extras != null) {
              Uri uri = null;
              uri = (Uri) extras.get("imageCrop");
              Bitmap bitmap = null;
              try {
                  bitmap = ImageUtil.decodeFile(
                          new File(new URI(uri.toString())),
                          AppConstant.MAX_IMAGE_SIZE);
              } catch (URISyntaxException e) {
                  e.printStackTrace();
              }
              processedBitmap = bitmap;
              selectedImage.setImageBitmap(bitmap);
          }
      }
      

      【讨论】:

      • 您好 ariefbayu,我无法使用这个图书馆项目。你能告诉我启动器活动代码的代码吗?提前致谢
      猜你喜欢
      • 2012-01-04
      • 2015-02-02
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 2018-09-20
      相关资源
      最近更新 更多