c# - Com.Theartofdev.Edmodo.Cropper 库结果代码已取消
问题描述
我无法使用 Com.Theartofdev.Edmodo.Cropper 库获得结果代码“OK”OnActivityResult。即使我实际上是从中按下裁剪,它也会被取消,因为库会自动显示裁剪工具。使用此代码。它会让你从你的设备中选择图像,当我按下裁剪时,没有任何反应,发现结果代码被取消。
CropImage.Builder()
.SetGuidelines(CropImageView.Guidelines.On).SetCropShape(CropImageView.CropShape.Oval).SetFixAspectRatio(true)
.Start(this);
(图片不是我的,来自这里“https://bintray.com/arthurhub/maven/Android-Image-Cropper#”)
我的目标是从 OnActivityResult 中获取 uri 并将其显示在cropimageview 上。
CropImageView cropImageView;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.cropView);
cropImageView = (CropImageView)FindViewById(Resource.Id.cropImageView);
CropImage.Builder()
.SetGuidelines(CropImageView.Guidelines.On).SetCropShape(CropImageView.CropShape.Oval).SetFixAspectRatio(true)
.Start(this);
StartActivityForResult(Intent, 200);
}
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
{
if (requestCode == CropImage.PickImageChooserRequestCode)
{
try
{
CropImage.ActivityResult result = CropImage.GetActivityResult(data);
if (resultCode == Result.Ok)
{
Android.Net.Uri resultUri = result.Uri;
cropImageView.SetImageUriAsync(resultUri);
}
}
catch
{
Toast.MakeText(Application.Context, "Error", ToastLength.Long).Show();
}
}
}
它说在文档上只使用 OnActivityResult 从工具中获取裁剪的图像,但我无法将结果代码设为“Ok”。我真的猜我做错了,或者我错过了很多部分。
解决方案
我能够通过将旧的 OnActivityResult 重写为此来实现目标,
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
if (requestCode == CropImage.CropImageActivityRequestCode)
{
CropImage.ActivityResult result = CropImage.GetActivityResult(data);
if (resultCode == Result.Ok)
{
Android.Net.Uri resultUri = result.Uri;
profilepiC.SetImageURI(resultUri);
}
else if (resultCode == (Result)CropImage.CropImageActivityResultErrorCode)
{
System.Exception error = result.Error;
Toast.MakeText(this, error.Message, ToastLength.Long).Show();
}
}
base.OnActivityResult(requestCode, resultCode, data);
}
也通过从 OnCreate 中删除这一行,
StartActivityForResult(Intent, 200);
而且我只是使用了一个简单的图像视图而不是裁剪视图图像。
推荐阅读
- python - 尝试适应 sklearn 模型时出现 ValueError
- awk - awk 命令从文件中读取键值对
- python - 为什么像数组这样的 Numpy 可变变量没有更新同一内存上的值?
- flutter - 我的 Firestore 规则访问其他用户路径时出现会议权限错误
- php - 如何对另一个wordpress php文件进行href?
- reactjs - React + Redux + Storybook:在编写故事书故事时如何使用连接的 React 路由器的 useParams?
- scala - 在 IntelliJ 中使用 Gradle 构建具有依赖项的 Jar,包括多个主类
- spring-data-jpa - 如何转换为 JPQL 用于内联视图?
- c++ - 仅当我们在优先级队列中使用自定义比较器时才需要传递容器类型?
- javascript - 根据重复出现修改数组值