• 好用的开源库(二)——uCrop 图片裁剪


    最近想要实现图片裁剪的功能,在Github上找到了这个uCrop,star的人挺多的,便是决定入坑,结果长达一个小时的看资料+摸索,终于是在项目中实现了图片裁剪的功能,今天便是来介绍一下uCrop的使用方法

    uCrop

    目录:

    1. 配置

    2. 流程介绍

    3. 使用

    配置

    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即可

  • 相关阅读:
    获取网页可视区域的宽高,不包括工具栏和滚动条(浏览器窗口可视区域大小)
    display:inline-block 来解决盒子高度不一样,造成的盒子浮动
    Jquery UI 中的datepicker() ,获取日期后的回调函数onClose()
    删除url搜索带的参数
    判断表单是否需要校验时可以按照类似逻辑去处理
    去除url中锚点的方法
    js常面试基础题
    vue项目总结
    vue-router
    回流与重绘
  • 原文地址:https://www.cnblogs.com/stars-one/p/8440072.html
Copyright © 2020-2023  润新知