在Android的裁剪图像在Android的裁剪图像(Crop image in android)

2019-05-06 10:00发布

我想要做的图像裁剪,我发现了一些非常有用的,但不知是像缺乏变暗未选择的领域,所以我想知道做任何人都知道怎么样? 或导致我在正确的方向? 在线教程中,我发现表明,是会变暗所选择的区域,但是当我使用它,它不会。 请帮帮我非常感谢和抱歉,我不好的英语命令。

链接我使用教程。

裁剪图像教程1

裁切图像教程2

我希望它是这样的。

editButton.setOnClickListener(new Button.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent goEdit;
            goEdit = new Intent(PreviewActivity.this, CropImage.class);
            goEdit.putExtra("image-path", path);
            goEdit.putExtra("scale", true);
            goEdit.putExtra("fileName", nameFromPath);
            //finish();
            checkEdit = true;
            startActivityForResult(goEdit,0);

        }
});

编辑我用这个按钮监听器调用的类CropImage活动调入cropImage文件。 这是一个自定义的意图不是里面的Android作物功能,但我认为是它的副本,以便使所有版本都支持,但是当我打电话到其所选区域的心不是照亮我唐诺哪里出了问题,谁能指导我? 由于这是我使用的库drioid4you裁剪图像

Answer 1:

你可以使用默认的Android作物的功能?

这里是我的代码

private void performCrop(Uri picUri) {
    try {
        Intent cropIntent = new Intent("com.android.camera.action.CROP");
        // indicate image type and Uri
        cropIntent.setDataAndType(picUri, "image/*");
        // set crop properties here
        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", 128);
        cropIntent.putExtra("outputY", 128);
        // retrieve data on return
        cropIntent.putExtra("return-data", true);
        // start the activity - we handle returning in onActivityResult
        startActivityForResult(cropIntent, PIC_CROP);
    }
    // respond to users whose devices do not support the crop action
    catch (ActivityNotFoundException anfe) {
        // display an error message
        String errorMessage = "Whoops - your device doesn't support the crop action!";
        Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);
        toast.show();
    }
}

宣布:

final int PIC_CROP = 1;

在顶部。

在onActivity结果的方法,令状以下代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == PIC_CROP) {
        if (data != null) {
            // get the returned data
            Bundle extras = data.getExtras();
            // get the cropped bitmap
            Bitmap selectedBitmap = extras.getParcelable("data");

            imgView.setImageBitmap(selectedBitmap);
        }
    }
}

这是很容易的,我实现,也显示变暗的区域。



Answer 2:

这个库: Android的图片-克罗珀是CropImages非常强大。 它在这个时候在github 3731颗星。

你会用几行代码裁剪图像。

1 - 添加的依赖条件成buid.gradle(模块:APP)

compile 'com.theartofdev.edmodo:android-image-cropper:2.7.+'

2 - 权限添加到AndroidManifest.xml中

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

3 - 添加到CropImageActivity的AndroidManifest.xml

<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
 android:theme="@style/Base.Theme.AppCompat"/>

4 - 与以下情形之一的启动活动,根据您的要求。

// start picker to get image for cropping and then use the image in cropping activity
CropImage.activity()
.setGuidelines(CropImageView.Guidelines.ON)
.start(this);

// start cropping activity for pre-acquired image saved on the device
CropImage.activity(imageUri)
.start(this);

// for fragment (DO NOT use `getActivity()`)
CropImage.activity()
.start(getContext(), this);

5 - 获取结果onActivityResult

@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();
    }
  }
}

你可以做一些定制 ,如设定纵横比或形状为矩形,椭圆形,多了很多。



Answer 3:

我发现了一个非常酷的库,尝试了这一点。 这实在是顺利和容易使用。

https://github.com/TakuSemba/CropMe



Answer 4:

希望你一切顺利。 你可以使用我的代码来裁剪image.you只是做一个类,并使用这个类到你XMljava类。 裁剪图像 。 您可以裁剪所选图像转换成圆形和方形成许多选项。 完全希望它会为你。因为作品这是完全可控的你,你可以根据你改变它。

好好工作 :)



文章来源: Crop image in android