android 动态裁剪图片,Github最火开源项目-Android图片裁剪
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图片裁剪相关推荐
- android自定义视频列表,Github最火开源项目-高仿今日头条视频列表功能
主要特点视频全屏播放和浮层小窗播放 可以完全自定义UI 能在ListView.ViewPager和ListView.ViewPager和Fragment等多重嵌套模式下全屏工作 手势修改进度和音量 视 ...
- ofo html源码,Github最火开源项目-一行代码实现ofo小黄车的引导界面
自定义控件 联网 工具 数据库 源码分析相关面试题 Activity相关面试题 Service相关面试题 与XMPP相关面试题 与性能优化相关面试题 与登录相关面试题 与开发相关面试题 与人事相关面试 ...
- GitHub Android 最火开源项目Top20
GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上.基于不要重复造轮子的原则,了解当下比较流行的Android与i ...
- github上的开源项目中gif图片的制作软件
在github上学习开源项目的时候,看到好些开源项目里的示例图片都是gif格式的,这些gif图片能够很好地介绍此开源项目的功能,尤其是在电脑上运行android模拟器时,然后就想着自己以后做开源的时候 ...
- GitHub上Swift开源项目!
swift-open-project 这里汇集了目前为止最为流行的Swift开源项目,选取SwiftGuide中的开源部分,这里将每周对项目进行总结,如果大家有推荐的可以联系thinkloki@gma ...
- GitHub 优秀的开源项目学习
转载:原博客地址http://blog.csdn.net/shulianghan/article/details/18046021 一.ListView android-pulltorefresh 一 ...
- Android消息通信之无所不能的第三方开源项目EventBus
Android消息通信之无所不能的第三方开源项目EventBus 在Android开发中,消息通信在开发过程中是比较重要但比较略微繁琐的过程,比如,Activity与Fragment之间的消息通 ...
- 精品收藏:GitHub人工智能AI开源项目
精品收藏:GitHub人工智能AI开源项目 绝对精品!!!花了点时间,鄙人把这几年收藏的开源精品项目,整理一下,方面以后查找.其中涵盖了姿态检测,图像分割,图像分类,美学评价.人脸识别.多尺度训练,移 ...
- GitHub中已开源项目汇总
GitHub中已开源项目汇总 QT 端软件 输入法 串口工具 AI IOT 网络协议 安卓 音频工具 嵌入式端软件 协议类 引导升级类 音频类 USB组合设备 下载算法制作 串行数据驱动框架 边缘计算 ...
- 人工智能科技成熟的11个Github上免费开源项目,很多电影中才有的场景应用到现实颠覆普通人的认知和想象
人工智能科技成熟的11个Github上免费开源项目,很多电影中才有的场景应用到现实颠覆普通人的认知和想象. 全文大纲: PULSE - 该开源项目可以通过给图片增加像素点来实现去马赛克或高清化. De ...
最新文章
- 前沿科技 | 中科院科学家研究揭示奥陶纪末生命大灭绝新机制
- 机器人教练SWOT分析_学车没人教,包头这个驾校机器人教练已上岗,再也不怕被教练骂了...
- 月薪8k 和 月薪28K的程序员差距在哪里?
- 还是两个数的交换问题
- linux通过platform_match()匹配platform总线上的device和driver
- Django框架连接MySQL数据库
- pytorch中的批量归一化BatchNorm1d和BatchNorm2d的用法、原理记录
- zend studio常见问题解答
- excel实战应用案例100讲(十五)-在Excel中对Python进行操作完美工具PyXLL-Jupyter
- 如何调整自定义标签样式
- ppt生成器_小米发布会ppt词云怎么做的
- C++走向远洋——60(十四周阅读程序、STL中的简单容器和迭代器)
- 机器学习的实现(语言及库的选择)
- ie11rtm版升级到最新_解决将Office 2010 Beta升级到RTM(最终版)的问题
- ENVI5.3 FLAASH大气校正报错
- 2-牛头刨床机构分析
- js/javaScript通过setTimeout做动画和需要注意的点
- CSS3 仿古墓丽影9菜单界面
- redit mysql_开发者经常用到的75 个功能强大的 jQuery插件和教程汇总(上篇)
- 知物由学 | 听声辨人,看声纹识别技术如何保障内容安全?
热门文章
- 大咖访谈丨金星分享2020年直播数据,助农产品如何走上产销快车道
- 计算机组成原理复习笔记——二、数据的表示和运算
- 动态代理实例——增强Waiter接口
- 看董事长陈睿11周年演讲,一起了解B站未来的三个使命吧
- Python的GUI图形界面工具大全
- 误删除文件怎么找回呢?
- JVM的垃圾回收Serial、Serial Old、Parallel Scavenge、Parallel Old的介绍和STW(Stop The World)
- 计算机存储程序的理论由谁提出,存储程序的概念是由谁提出来的
- 归去来兮辞 陶渊明
- 2018年Android面试题含答案--适合中高级(上)