安卓图片裁剪之Android-Image-Cropper简单使用

2023-11-06

图片裁剪是一个相对用的比较多的功能。正好近期用到了。

于是在最新的ChatGPT上询问了一番。。两次询问,得到的最优推荐依然是:Android-Image-Cropper。经过一番研究使用。。确实简单好用。直接看代码:

首先,你需要引入依赖:

dependencies {
    api 'com.theartofdev.edmodo:android-image-cropper:2.8.+'
}

其次,你需要添加手机内存访问权限以用来访问相册

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

再然后,是使用,使用的话分为Activity和View两种弄方式。换言之,就是可以直接集成或者定制使用。当然,每一个都很简单。

1、直接使用 ( 直接跳转至内置Activity)

//	启动取景器获取用于裁剪的图像,然后在裁剪Activity中使用该图像
CropImage.activity()
  .setGuidelines(CropImageView.Guidelines.ON)
  .start(this);

//选择手机相册图片以裁剪
CropImage.activity(imageUri)
 .start(this);

//	for Fragment(请勿是使用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();
    }
  }
}

当然,如果你要使用这个Activity,就要为他注册。

<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
  android:theme="@style/Base.Theme.AppCompat"/> 

<!-- optional (needed if default theme has no action bar) -->

2、如果你要定制页面

首先要在xml中引入

<com.theartofdev.edmodo.cropper.CropImageView
  xmlns:custom="http://schemas.android.com/apk/res-auto"
  android:id="@+id/cropImageView"
  android:layout_width="match_parent"
  android:layout_height="0dp"
  android:layout_weight="1"/>

然后Activity中的使用如下:

//把选择的图片传至view

cropImageView.setImageUriAsync(uri);
// 为了性能和更好的用户体验,更倾向于使用uri
cropImageView.setImageBitmap(bitmap);

获取裁剪后的图像

// subscribe to async event using cropImageView.setOnCropImageCompleteListener(listener)

cropImageView.getCroppedImageAsync();
// or
Bitmap cropped = cropImageView.getCroppedImage();

如果需要旋转图片

//xx为每次顺时针旋转度数
.rotateImage(xx)

最后,如果你的代码需要混淆:
将此行添加到你的 Proguard 配置文件中

-keep class androidx.appcompat.widget.** { *; }

最后的最后,如果你需要获得最新的依赖版本或者更多的功能支持。请查阅 GitHub

END

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安卓图片裁剪之Android-Image-Cropper简单使用 的相关文章

随机推荐

  • Pytorch GPU编号问题

    虽然os environ CUDA VISIBLE DEVICES 能够实现在代码中设置可见的GPU 设备 但是在实际运行中 Pytorch会对这些GPU重新编号 比如 os environ CUDA VISIBLE DEVICES 3 5
  • 什么是虚拟服务器

    什么是虚拟服务器 简单来将 对于一个通过路由器搭建的局域网 当广域网上有对这个局域网共有IP访问时 路由器会将访问转移到局域网内某个特定的电脑上 这个功能是通过对路由器设置完成的 举个例子 如果你想建立一个服务器 供internet 上的用
  • gitee常用指令

    git init 初始化仓库 git status查看当前状态 git pull将本地代码与线上代码同步 git config 查询修改和配置 git log 显示提交日志 git fetch 从远程获取代码库 git branch查看本地
  • 使用Microsoft认知服务进行文本检测和 OCR

    使用Microsoft认知服务进行文本检测和 OCR Microsoft Cognitive Services MCS Microsoft认知服务 这篇博客将介绍 Microsoft Cognitive Services MCS OCR A
  • 用cmake gui配置VS2022中vs2017工具集

    问题描述 vs2022中安装了vs2017 vs2019等工具集 想用cmake gui配置vs2017编译器进行项目生成 选择 Visual Studio 15 2017会提示找不到 选择Visual Studio 17 2022用的就是
  • 基于证据理论的多源数据融合仿真实验matlab代码

    matlab源码链接见文章末尾 基于D S证据理论的数据融合方法的基本思想 D S证据理论是一种不确定性推理方法 所处理的数据信息大多是具有不确定性的 该方法能够摆脱对先验概率的依赖 把难以下手分析和处理的完整问题分解成很多易于处理的子问题
  • 背景图片靠右对齐,并且间距从右算起

    假如右边有个小箭头需要右对齐并且垂直居中 可以写成 background url images test png no repeat right center 如果需要离右边10px呢 可以这样写 background url images
  • Python如何执行JS代码

    前言 爬虫的开发过程中 往往需要对JS进行模拟 简单或者通用的还可以在Python中模拟或者找到对应的第三方库 但是复杂的就可能不好实现了 所以Python执行JS语句就是爬虫开发过程中的一个痛点 而能执行JS语句的第三方库常见的有sele
  • 【学习篇】【C++】【文件操作】

    文件操作 文件的打开方式 一 文本文件 1 1 写文件 1 2 读文件 二 二进制文件 2 1 写文件 2 2 读文件 程序运行时产生的数据都属于临时数据 程序运行完后就会被释放 因此通过文件可以将数据持久化 文件操作需要包含头文件fstr
  • a href=#与 a href=javascript:void(0) 的区别

    a href gt 点击链接后 页面会向上滚到页首 默认锚点为 TOP a href 点击链接后 页面不动 只打开链接 a href 作用同上 不同浏览器会有差异 点击链接后 不想使页面滚到页首 就用href javascript void
  • 十六进制的转换为十进制两种常见方法

    十六进制的转换为十进制两种常见方法 好久以前学的都忘了 正好复习一下 对于十六进制转十进制 第一种 快速法 自己挺喜欢第一种的快捷 比如 012A 0 X 163 1 X 162 2 X 161 10 X 160 298 说明 当中的十六进
  • VS2010中 C++创建DLL图解

    一 DLL的创建 创建项目 Win32 gt Win32项目 名称 MyDLL 选择DLL D gt 完成 1 新建头文件testdll h testdll h代码如下 ifndef TestDll H define TestDll H i
  • postgresql客户名称脱敏

    脱敏规则 1个字符 不脱敏 2个字符 后一个字符脱敏 3个字符 中间一个字符脱敏 4个字符 中间两个字符脱敏 超过4个字符 认为是政企客户 不做脱敏处理 postgresql函数实现 CREATE OR REPLACE FUNCTION f
  • 决策树的初体验

    接下来是三种经典的决策树算法的学习过程 Step1 信息熵与信息增益 信息熵 information entropy 是度量样本集合纯度最常用的一种指标 假定当前样本集合D中第k类样本所占的比例为pk k 1 2 y 则D的信息熵定义为 E
  • 正则表达式验证邮箱格式

    需满足的验证逻辑 之前必须有内容且只能是字母 大小写 数字 下划线 减号 点 和最后一个点 之间必须有内容且只能是字母 大小写 数字 点 减号 且两个点不能挨着 最后一个点 之后必须有内容且内容只能是字母 大小写 数字且长度为大于等于2个字
  • 使用postman做接口测试实战

    一 准备 1 postman工具 2 搭建被测系统服务 3 fiddler抓包工具 说明 本此实战测试是在完成前台界面开发后进行的 接口是通过fiddler抓包获取的 如果没有完成系统前台开发 以项目组输入的接口为准进行测试也是一样的原理
  • 博世BMA400传感器API (中文说明)

    前言 最近项目中要使用BMA400 sensor 为了以后查找 这里只是对API进行翻译 有些地方翻译可能出错 请指出来一起探讨 谢谢各位看官 BMA 400数据手册 https download csdn net download qq
  • 五种方法,教你如何在Mac上查看文件完整路径

    在MacOS上 Finder显示文件默认是不带路径展示的 你进入某个文件夹只会显示文件夹的名称而已 如下图 那如何获取或者显示文件的完整路径呢 在MacOS中有五种方法可以显示文件完整路径 第一种 使用 终端 Terminal获取文件完整路
  • Numpy 索引

    整数索引 一般形式 arr frist dim index second dim index nth dim index x np array 1 2 3 4 5 6 7 8 print x 2 3 y np array 11 12 13
  • 安卓图片裁剪之Android-Image-Cropper简单使用

    图片裁剪是一个相对用的比较多的功能 正好近期用到了 于是在最新的ChatGPT上询问了一番 两次询问 得到的最优推荐依然是 Android Image Cropper 经过一番研究使用 确实简单好用 直接看代码 首先 你需要引入依赖 dep