android – 如何将Crop Feature添加到Camera Intent或Gallery Intent&在Web-view?或在JavaScript中

我按照
this从Web视图捕获或选择文件和上传…这是完美的,适用于所有Android版本..

所以在那里我想添加裁剪意图…裁剪相机捕获/图库然后从Webview上传所有这些Happen

我有this意图为Crop Image添加..我想在MainActivity中添加它..在Capture Capture中相机和图库..

Intent cropIntent = new Intent("com.android.camera.action.CROP");
// indicate image type and Uri
cropIntent.setDataAndType(data.getData(), "image/*");
cropIntent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri());
cropIntent.putExtra("outputFormat",
        Bitmap.CompressFormat.JPEG.toString());
// set crop properties
cropIntent.putExtra("crop", "true");
// indicate aspect of desired crop
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
// indicate output X and Y
cropIntent.putExtra("outputX", 256);
cropIntent.putExtra("outputY", 256);
// retrieve data on return
cropIntent.putExtra("return-data", true);
// start the activity - we handle returning in
// onActivityResult
startActivityForResult(cropIntent, 3);

所以它可能是相机或图库我想裁剪和上传..

可以任何人建议我如何将Crop Intent添加到主要活动..

更新1

我有一个意图捕获相机和视图库..以类似的方式我有作物意图的选项…但我想将这个作物应用于相机意图和画廊,但所有这些都需要在webview(Mainactivity)中发生. ..

请检查我的Mainactivity …在回答之前..

我想为相机意图和画廊意图添加Crop Intent ..它应该能够上传…最小分辨率…不超过2megapixel ..如果不到也没问题…就像this在位图.. .

在更新中我再次添加相同的链接不要混淆…

所有这里需要在webview中裁剪和上传…

更新2

是否可以在我的MainActivity中使用this库…如果从Web视图裁剪捕获相机并在同一webview中上传…

最佳答案 首先,在gradle文件中添加依赖项:

compile 'com.soundcloud.android:android-crop:1.0.1@aar'

然后,下面是裁剪图像的逻辑.将此方法放在Activity类中,并根据您的要求在Activity上调用此方法,并传递图像的URI.

private void beginCrop(Uri source) {
        Uri destination = Uri.fromFile(new File(getCacheDir(), "cropped"));
        Crop.of(source, destination).asSquare().start(this);
    } 

裁剪图像后,您将获得活动的onActivityResult中的结果

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent result) {
         if (requestCode == Crop.REQUEST_CROP) {
            handleCrop(resultCode, result);
        } 
    } 

之后

private void handleCrop(int resultCode, Intent result) {
        if (resultCode == RESULT_OK) {
            ImageView.setImageURI(Crop.getOutput(result));
        } else if (resultCode == Crop.RESULT_ERROR) {
            Toast.makeText(this, Crop.getError(result).getMessage(), Toast.LENGTH_SHORT).show();
        } 

我希望这适合你.

点赞