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"/>
<