PS:如果觉得这个系列的每篇文章太长,那就直接看视频吧

一款极具观赏性的图片裁剪库

运行效果

爱生活,爱学习,更爱做代码的搬运工,分类查找更方便请下载黑马助手app

黑马助手.png

使用步骤

1. 在project的build.gradle添加如下代码(如下图)

allprojects {

repositories {

...

maven { url "https://jitpack.io" }

}

}

2. 在Module的build.gradle添加依赖

compile 'com.github.open-android:uCrop:v1.0.0'

3. 复制如下代码到xml

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:onClick="start"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="开始裁剪图片"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/iv"/>

4. 复制如下代码到activity中 , 并且在onCreate方法查找ImageView

private ImageView mIv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mIv = (ImageView) findViewById(R.id.iv);

}

public void start(View view){

//需要裁剪的图片路径

Uri sourceUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory() , "icon_18.jpg"));

//裁剪完毕的图片存放路径

Uri destinationUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory() , "icon_18_2.jpg"));

UCrop.of(sourceUri, destinationUri) //定义路径

.withAspectRatio(4, 3) //定义裁剪比例 4:3 , 16:9

.withMaxResultSize(100, 100) //定义裁剪图片宽高最大值

.start(this);

}

@Override

public void onActivityResult(int requestCode, int resultCode, Intent data) {

//裁剪成功后调用

if (resultCode == RESULT_OK && requestCode == UCrop.REQUEST_CROP) {

final Uri resultUri = UCrop.getOutput(data);

//设置裁剪完成后的图片显示

mIv.setImageURI(resultUri);

//出错时进入该分支

} else if (resultCode == UCrop.RESULT_ERROR) {

final Throwable cropError = UCrop.getError(data);

}

}

5. 在清单文件注册以下activity ,该activity是裁剪界面

android:name="com.yalantis.ucrop.UCropActivity"

android:screenOrientation="portrait"

android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>

6. 并且添加对SD卡的读写权限。

详细的使用方法在DEMO里面都演示啦,如果你觉得这个库还不错,请赏我一颗star吧~~~

欢迎关注微信公众号

微信公众号名称:Android干货程序员

android 动态裁剪图片,Github最火开源项目-Android图片裁剪相关推荐

  1. android自定义视频列表,Github最火开源项目-高仿今日头条视频列表功能

    主要特点视频全屏播放和浮层小窗播放 可以完全自定义UI 能在ListView.ViewPager和ListView.ViewPager和Fragment等多重嵌套模式下全屏工作 手势修改进度和音量 视 ...

  2. ofo html源码,Github最火开源项目-一行代码实现ofo小黄车的引导界面

    自定义控件 联网 工具 数据库 源码分析相关面试题 Activity相关面试题 Service相关面试题 与XMPP相关面试题 与性能优化相关面试题 与登录相关面试题 与开发相关面试题 与人事相关面试 ...

  3. GitHub Android 最火开源项目Top20

    GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上.基于不要重复造轮子的原则,了解当下比较流行的Android与i ...

  4. github上的开源项目中gif图片的制作软件

    在github上学习开源项目的时候,看到好些开源项目里的示例图片都是gif格式的,这些gif图片能够很好地介绍此开源项目的功能,尤其是在电脑上运行android模拟器时,然后就想着自己以后做开源的时候 ...

  5. GitHub上Swift开源项目!

    swift-open-project 这里汇集了目前为止最为流行的Swift开源项目,选取SwiftGuide中的开源部分,这里将每周对项目进行总结,如果大家有推荐的可以联系thinkloki@gma ...

  6. GitHub 优秀的开源项目学习

    转载:原博客地址http://blog.csdn.net/shulianghan/article/details/18046021 一.ListView android-pulltorefresh 一 ...

  7. Android消息通信之无所不能的第三方开源项目EventBus

     Android消息通信之无所不能的第三方开源项目EventBus 在Android开发中,消息通信在开发过程中是比较重要但比较略微繁琐的过程,比如,Activity与Fragment之间的消息通 ...

  8. 精品收藏:GitHub人工智能AI开源项目

    精品收藏:GitHub人工智能AI开源项目 绝对精品!!!花了点时间,鄙人把这几年收藏的开源精品项目,整理一下,方面以后查找.其中涵盖了姿态检测,图像分割,图像分类,美学评价.人脸识别.多尺度训练,移 ...

  9. GitHub中已开源项目汇总

    GitHub中已开源项目汇总 QT 端软件 输入法 串口工具 AI IOT 网络协议 安卓 音频工具 嵌入式端软件 协议类 引导升级类 音频类 USB组合设备 下载算法制作 串行数据驱动框架 边缘计算 ...

  10. 人工智能科技成熟的11个Github上免费开源项目,很多电影中才有的场景应用到现实颠覆普通人的认知和想象

    人工智能科技成熟的11个Github上免费开源项目,很多电影中才有的场景应用到现实颠覆普通人的认知和想象. 全文大纲: PULSE - 该开源项目可以通过给图片增加像素点来实现去马赛克或高清化. De ...

最新文章

  1. 前沿科技 | 中科院科学家研究揭示奥陶纪末生命大灭绝新机制
  2. 机器人教练SWOT分析_学车没人教,包头这个驾校机器人教练已上岗,再也不怕被教练骂了...
  3. 月薪8k 和 月薪28K的程序员差距在哪里?
  4. 还是两个数的交换问题
  5. linux通过platform_match()匹配platform总线上的device和driver
  6. Django框架连接MySQL数据库
  7. pytorch中的批量归一化BatchNorm1d和BatchNorm2d的用法、原理记录
  8. zend studio常见问题解答
  9. excel实战应用案例100讲(十五)-在Excel中对Python进行操作完美工具PyXLL-Jupyter
  10. 如何调整自定义标签样式
  11. ppt生成器_小米发布会ppt词云怎么做的
  12. C++走向远洋——60(十四周阅读程序、STL中的简单容器和迭代器)
  13. 机器学习的实现(语言及库的选择)
  14. ie11rtm版升级到最新_解决将Office 2010 Beta升级到RTM(最终版)的问题
  15. ENVI5.3 FLAASH大气校正报错
  16. 2-牛头刨床机构分析
  17. js/javaScript通过setTimeout做动画和需要注意的点
  18. CSS3 仿古墓丽影9菜单界面
  19. redit mysql_开发者经常用到的75 个功能强大的 jQuery插件和教程汇总(上篇)
  20. 知物由学 | 听声辨人,看声纹识别技术如何保障内容安全?

热门文章

  1. 大咖访谈丨金星分享2020年直播数据,助农产品如何走上产销快车道
  2. 计算机组成原理复习笔记——二、数据的表示和运算
  3. 动态代理实例——增强Waiter接口
  4. 看董事长陈睿11周年演讲,一起了解B站未来的三个使命吧
  5. Python的GUI图形界面工具大全
  6. 误删除文件怎么找回呢?
  7. JVM的垃圾回收Serial、Serial Old、Parallel Scavenge、Parallel Old的介绍和STW(Stop The World)
  8. 计算机存储程序的理论由谁提出,存储程序的概念是由谁提出来的
  9. 归去来兮辞 陶渊明
  10. 2018年Android面试题含答案--适合中高级(上)