Square从图像选择器Activiy中裁剪图像

时间:2015-06-18 08:32:13

标签: android

我有两种方法可以为我挑选照片。我想在选择图片后做一些像Facebook个人资料图片方形裁剪。并且如果有一种简单的方法可以徘徊,例如将额外内容添加到意图(“crop”,“true”),(“aspectX / Y”,1)等等。现在我正在试验意图附加功能,但无法使其工作。

Constants.TAKE_CAMERA_PICTURE是1000 Constants.SELECT_PICTURE_ACTIVITY_REQUEST_CODE为1001

private void takeCameraPhoto() {
    mPhotoHelper = PhotoHelper.recycle(mPhotoHelper);
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    Uri photoUri = Uri.fromFile(mPhotoHelper.getPhotoFile());
    intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
    startActivityForResult(intent, Constants.TAKE_CAMERA_PICTURE);
}

public void importPhotoAlbum() {
    mPhotoHelper = PhotoHelper.recycle(mPhotoHelper);
    Intent intent = new Intent(Intent.ACTION_PICK);
    intent.setType("image/*");
    startActivityForResult(intent, Constants.SELECT_PICTURE_ACTIVITY_REQUEST_CODE);
}

提前致谢!

2 个答案:

答案 0 :(得分:2)

我正在使用 jdamcd / android-crop 库来实现此目的。只需在项目中将其添加为库.. 现在裁剪图像只需写一行i-e

Crop.of(source, dest).asSquare().start(this, CropCode);

这里, source 是图像文件的Uri, dest 是要保存图像的目标uri

它将为您完成所有工作..还有其他方法可以裁剪。如果您有任何困难,请告诉我: - )

答案 1 :(得分:0)

如果您想使用纯Android SDK,请将位图类与 createBitmap 方法一起使用,查看文档Here,然后查看以下示例:< / p>

#menu ul li a{
width:99%;
}

如果您想使用第三方SDK,请查看此库Cropper Android小部件以裁剪和旋转图片,我认为它会做您想要的,检查他们的wiki页面,其中包含以下示例:

1-将CropImageView添加到Layout XML文件

Bitmap croppedImage = Bitmap.createBitmap(sourceImage, startX, startY, destinationWidth, destinationHeight);

2-您可以使用提供的CropImageView方法以编程方式修改属性:

<com.edmodo.cropper.CropImageView 
    xmlns:custom="http://schemas.android.com/apk/res-auto"
    android:id="@+id/CropImageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

3-要检索Cropper窗口中包含的图像,请使用提供的方法getCroppedImage()来检索裁剪图像的位图。

CropImageView cropImageView = (CropImageView) findViewById(R.id.CropImageView);
cropImageView.setAspectRatio(5, 10);
cropImageView.setFixedAspectRatio(true);
cropImageView.setGuidelines(1);

希望有帮助。