如何在图库容器中添加左、右、上、下和裁剪选项
How to add rotate left, right, top, bottom and crop option in gallery container
我使用内部存储来保存图像并在网格视图中检索,现在我的任务是使用旋转和裁剪选项在图库中打开图像,我的示例在 Android Lollipop 版本中打开图像图库,包含旋转和裁剪选项,但在 Android oreo 版本图像在图库中打开但没有选项 showed.My 下面给出的示例代码在图库视图中打开。
Intent intent = new Intent(Intent.ACTION_VIEW)//
.setDataAndType(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ?
android.support.v4.content.FileProvider.getUriForFile(MyFileActivity.this,getPackageName() + ".provider", file) : Uri.fromFile(file),
"image/*").addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(intent,PICK_IMAGE_REQUEST);
使用此 Library 您可以裁剪、向左、向右、顶部、底部旋转图库图像
将此库添加到您的 build.gradle(Module.app) 文件
implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
将这一行添加到您的 Proguard 配置文件中
-keep class android.support.v7.widget.** { *; }
将 CropImageActivity 添加到您的 AndroidManifest.xml
<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
android:theme="@style/Base.Theme.AppCompat"/> <!-- optional (needed if
default theme has no action bar) -->
并在onClick gallery或camera Button中添加以下方法
CropImage.activity()
.setGuidelines(CropImageView.Guidelines.ON)
.setAspectRatio(1,1)
.start(YourActivityName.this);
// for fragment (DO NOT use `getActivity()`)
CropImage.activity()
.start(getContext(), this);
现在在 activity 的 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();
}
}
}
我使用内部存储来保存图像并在网格视图中检索,现在我的任务是使用旋转和裁剪选项在图库中打开图像,我的示例在 Android Lollipop 版本中打开图像图库,包含旋转和裁剪选项,但在 Android oreo 版本图像在图库中打开但没有选项 showed.My 下面给出的示例代码在图库视图中打开。
Intent intent = new Intent(Intent.ACTION_VIEW)//
.setDataAndType(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ?
android.support.v4.content.FileProvider.getUriForFile(MyFileActivity.this,getPackageName() + ".provider", file) : Uri.fromFile(file),
"image/*").addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(intent,PICK_IMAGE_REQUEST);
使用此 Library 您可以裁剪、向左、向右、顶部、底部旋转图库图像
将此库添加到您的 build.gradle(Module.app) 文件
implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
将这一行添加到您的 Proguard 配置文件中
-keep class android.support.v7.widget.** { *; }
将 CropImageActivity 添加到您的 AndroidManifest.xml
<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
android:theme="@style/Base.Theme.AppCompat"/> <!-- optional (needed if
default theme has no action bar) -->
并在onClick gallery或camera Button中添加以下方法
CropImage.activity()
.setGuidelines(CropImageView.Guidelines.ON)
.setAspectRatio(1,1)
.start(YourActivityName.this);
// for fragment (DO NOT use `getActivity()`)
CropImage.activity()
.start(getContext(), this);
现在在 activity 的 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();
}
}
}