❶ ucrop 怎么在android studio中使用
1 uCrop简介
最近项目中用到了图片裁剪功能,于是网络了一下,发现了uCrop这个框架,这个框架的星星数很多,就决定使用这个框架
uCrop的Github地址:https://github.com/Yalantis/uCrop
uCrop的特点:
裁剪框不动,图片动 图片可以旋转,缩放 支持各种比例裁剪框
uCrop的效果图(来自其Github):
2 集成uCrop
(1) uCrop集成方法:
compile 'com.yalantis:ucrop:1.4.1'
(2) 修改当前项目的build.gradle文件,修改后代码如下:
android {
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
applicationId 'com.test'
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName '1.0'
}
....
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.yalantis:ucrop:1.4.1'
}
注意:修改了targetSdkVersion后com.android.support:appcompat-v7的版本也要相匹配
虽然使用maven依赖的话即使appcompat-v7的版本不匹配也没有关系,但使用aar文件则会报错,所以建议你修改了compileSdkVersion 后也要修改appcompat-v7的版本,搞不好就会遇到问题
(3) 如果你没有23版本的sdk,也就是Android 6.0的sdk,则要启动sdk manger去下载,同时也要下载Android SDK Build-tools 23.0.2,如下图:
(4) 修改gradle插件的版本
修改整个project最外面的全局build.gradle文件的gradle版本:
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
}
(5) 下载最新的gradle
Gradle下载地址:http://services.gradle.org/distributions
目前最新版本是gradle-2.13-rc-2-all.zip,下载完成后解压,然后在Android Studio中指定gradle的地址,如下图所示:
要使用2.0以上版本的gradle插件,必须使用2.10以上的gradle,注意gradle插件和gradle是两个东西,前者是Android Studio的插件,后者是独立的东西
(6) 准备工作完毕,同步代码,uCrop已经集成到我们的项目中去了,是不是很麻烦?不然我写这篇文章干嘛。
注意:uCrop必须使用23及以上版本的sdk,gradle插件版本必须2.0.0及以上,gradle版本必须2.10及以上,appcompat-v7版本必须23.0及以上
如果以上都满足了,应该就不会报错了。至于为什么非要23以上的sdk,因为uCrop使用了Android 6.0的新特性:VectorDrawable
3 uCrop的用法
(1) 在AndroidManifest.xml中添加UCropActivity,代码如下:
<activity
android:name='com.yalantis.ucrop.UCropActivity'
android:screenOrientation='portrait'
android:theme='@style/Theme.AppCompat.Light.NoActionBar'/>
(2) 在AndroidManifest.xml中添加权限:
<uses-permission android:name='android.permission.READ_EXTERNAL_STORAGE'/>
<uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE'/>
<uses-permission android:name='android.permission.INTERNET'/>
❷ (译)uCrop介绍 —— 我们自己的Android图片裁剪库
原文链接: https://yalantis.com/blog/introcing-ucrop-our-own-image-cropping-library-for-android
译者: Eirture
我们在 Yalantis 开发了许多不同的 Android 应用,经验告诉我们,几乎在所有的应用中,都需要图片裁剪的功能。图片裁剪的用途很广,从简单的用户头像调整到图片的比例裁剪、灵活变换等各种复杂的处理。
我们想为所有的用户提供最好的图片处理工具,所以决定创建Android的图片裁剪库 uCrop 。 可以在 Proct Hunt 上为 uCorp 投票。
也许你会好奇,为什么我们不使用现成的 Android 图片裁剪解决方案。 毕竟,可以在 Github 或者 Android Arsenal 上找到很多这类的库。但是问题是,那些解决方案都不满足我们的需求。我们来看一些主流的开源图片裁剪库,为什么不符合我们的需求。
我在几个项目里面使用了 SoundCloud 库很成功,但是仍然有几个问题让我很头痛。
首先,你操作的是一个裁剪的框,而不是图片本身。当需要裁剪一个很小面积的图片时,这会你感觉有点痛苦。这是与用户使用习惯向悖的。我确信 Instagram 传授给我们的是一些优秀的 UX (用户体验),可以移动的裁剪框也已经灭绝了。
其次,SoundCloud 裁剪库不允许用户旋转图片。Come on, guys! 所有人都知道,有成百上千“不可思议”的安卓手机给照片设置了错误的EXIF信息(谢天谢地,我们有 CWAC 来清理这个烂摊子)。而且,很大部分的用户是希望能够转动图片的(不仅仅是 90 度)。
最后同样重要的一点,使用 SoundCloud 库不能改变长宽比。当然,如果你使用它仅仅是需要获取一个方形的头像,那没有任何问题。但是,其它很多很有趣的头像形状,用这个库无法实现。
Scissors 是一个新的库,不久前我在一个 安卓问题周刊 上看到它的时候特别激动。但 5 分钟内我的兴奋就消失了。引用一句关于 Scissors 的 博文 :
这确实是一个值得称赞的方法。实际上,我们找到又是一个不能旋转图片,也不能动态调整宽高比的库。尽管 Scissors 集成了一些主流的图片加载库,像 Picasso , Glide 以及 Universal Image Loader 。希望 Scissors 在后续的版本中有更多实用的功能。
分析完这些现有库的缺点,我们决定创建 自己的库 ,支持手势并且有一个良好的 UX。
安卓库 uCrop 允许你修剪图片来更好的使用。uCrop 重要的特性如下:
uCrop 有一个初始化的构建类型接口,来为你的应用配置一些适当的属性。uCrop 库最低的版本要求是 API 10,示例应用工作的版本是 API 15+ 。
你可以改变下面这个设置:
在下一篇文章中,将会展示我们构建 uCrop 的经历,敬请关注!