好用的开源库(二)——uCrop 图片裁剪
2023-02-18 16:40:24 时间
最近想要实现图片裁剪的功能,在Github上找到了这个uCrop,star的人挺多的,便是决定入坑,结果长达一个小时的看资料+摸索,终于是在项目中实现了图片裁剪的功能,今天便是来介绍一下uCrop的使用方法
目录:
-
配置
-
流程介绍
-
使用
配置
1.添加依赖
maven { url "https://jitpack.io" }
compile 'com.github.yalantis:ucrop:2.2.1'
2.配置Androidmanifest文件
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"/>
screenOrientation是屏幕方向,由于是在手机上使用的,这里便设置为竖直方向
3.还有读写权限的声明
PS:这里Write权限其实是包括了读和写的权限,所以我们只需要声明一个就行了,多声明写的权限也是没有问题的
简单流程介绍:
使用之前我们来了解一下剪切图片的过程
首先,Ucrop构造函数有两个参数,分别是需要裁剪的图片的Uri和裁剪之后的Uri,裁剪之后的Uri需要我们创建,之后对Ucrop进行一些设置,如裁剪框的宽高大小,设置裁剪框的竖线数量或者输出的图片格式等等
完成设置后就可以进入到裁剪的那个Activity进行裁剪的操作,结束裁剪之后会有返回码,我们在onActivityResult方法中对其进行截取就可以获得裁剪之后的Uri,之后我们就可以利用这个Uri获得裁剪之后的图片
使用:
1.新建一个输出的Uri,mDestinationUri
2.新建一个Ucrop类,相关设置如图片中代码
参数传入的是需要裁剪的图片的Uri
3.在onActivityResult中截取裁剪图片输出的Uri
4.处理图片
这里直接使用Uri的toString方法将Uri转换为String
5.显示图片
这里使用IO流,具体可以看看代码理解理解(其实直接用刚才获得的那个Uri也行,不用转换成String类型)
可能出现的问题:
出现应用已停止:
原因:在使用裁剪的当前的Activity使用了actionbar,在Androidmanifest文件中将该activity的theme改为Noactionbar即可
相关文章
- 吐槽net下没有靠谱的FastDFS的sdk之使用thrift实现JAVA和C#互通
- 你需要了解的高可用方案之使用keepalived搭建双机热备一览
- 全内存的redis用习惯了?那能突破内存限制类redis产品ssdb呢?
- 把项目中那些恶心的无处存储的大块数据都丢到FastDFS之快速搭建
- 通过ELK快速搭建一个你可能需要的集中化日志平台
- 通过hadoop + hive搭建离线式的分析系统之快速搭建一览
- 使用nginx搭建高可用,高并发的wcf集群
- 如何大幅提升web前端性能之看tengine在大公司架构实践
- 缓存一致性和跨服务器查询的数据异构解决方案canal
- 高CPU业务场景下的任务分发方案Gearman搭建一览
- 改造继续之eclipse集成tomcat开发spring mvc项目配置一览
- .net项目架构改造之搭建基于java环境配置一览【上】
- 用java调用.net的wcf其实还是很简单的
- 使用sqlserver搭建高可用双机热备的Quartz集群部署【附源码】
- 采用config方式灵活配置我们的Quarz.net中的Job,Trigger
- 用惯了Task,你应该也需要了解它的内部调度机制TaskScheduler
- Parallel.For 你可能忽视的一个非常实用的重载方法
- 享受release版本发布的好处的同时也应该警惕release可能给你引入一些莫名其妙的大bug
- 使用Task的一些知识优化了一下同事的多线程协作取消的一串代码
- 从真实项目中抠出来的设计模式——第三篇:责任链模式