如何从 recyclerview 裁剪图像并使用新裁剪的图像更新 recyclerview?
Posted
技术标签:
【中文标题】如何从 recyclerview 裁剪图像并使用新裁剪的图像更新 recyclerview?【英文标题】:how to crop images from recycleview and update recycleview with new cropped image? 【发布时间】:2018-11-13 09:18:42 【问题描述】:我创建了一个回收视图,其中不包含可以从相机和图库中选择的图像,我们添加了两个选项来回收视图已删除的图像和裁剪选项。 在删除选项上单击recycleview 项目被删除并且recycleview 得到更新,现在我希望在recycleview 图像上实现裁剪功能并将它们再次更新到recycleview。
以下正在链接上进行 UI 设计 https://ibb.co/kxXcnq
以下是裁剪选项单击事件,我在其中获取图像的 uri: 我在单独的图像适配器类中创建了它:
holder.cropImageView.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
// Show the removed item label`enter code here`
File file = imagesFiles.get(position);
Uri uri = Uri.parse(file.getAbsolutePath());
Log.d("file name :", file.getAbsolutePath());
);
【问题讨论】:
【参考方案1】:您可以裁剪图像并保存到适配器中相同的数组列表位置,并使用 adapter.notifyItemChanged(position);
通知 apdater 的位置【讨论】:
如何在我单独创建的适配器中对图像执行裁剪操作,并更新recycleview。 @ReceiptBag 您的裁剪代码是静态的吗(意味着您以相同的高度和宽度裁剪位图区域,例如以 1:1 的比例裁剪图像)【参考方案2】:-
将所选图像从适配器传递到此库活动https://github.com/ArthurHub/android-Image-Cropper 裁剪后您将获得结果
那么我想你会得到图像的位置,所以你更新列表中的新图像
【讨论】:
我已经尝试应用该库,它什么也没给我,它没有启动作物活动File file = imagesFiles.get(position); Uri uri = Uri.parse(file.getAbsolutePath()); AppCompatActivity activity = (AppCompatActivity) view.getContext(); CropImage.activity(uri).start(activity);
@ReceiptBag 这是什么?
我正在从 recycleview 获取所选图像的 uri,我必须使用裁剪库打开该图像,我已经将 uri 传递给 CropImage 类,该类打开裁剪活动以裁剪图像与 uri
@ReceiptBag 好的,有什么问题?
按照您的指示,我已经实现了 Image-Cropper 库,//这两行以 uri File file = imagesFiles.get(position); Uri uri = Uri.parse(file.getAbsolutePath());
的形式为我提供了图像文件 // 从适配器类获取活动以便在下一行中使用代码AppCompatActivity activity = (AppCompatActivity) view.getContext();
// 这用于使用uri 裁剪图像,它打开裁剪活动CropImage.activity(uri).start(activity);
但是这行代码不会启动任何裁剪活动,它只是不做任何事情。以上是关于如何从 recyclerview 裁剪图像并使用新裁剪的图像更新 recyclerview?的主要内容,如果未能解决你的问题,请参考以下文章