Android 图片裁切框架 uCrop 的用法

本文详细介绍了Android图片裁剪框架uCrop的集成步骤、使用方法以及常见问题解决,包括uCrop的特点、配置要求、AndroidManifest.xml设置、权限申请、裁剪图片的代码实现,以及在使用aar时遇到的兼容性问题和解决方案。
摘要由CSDN通过智能技术生成

1 uCrop简介

最近项目中用到了图片裁剪功能,于是百度了一下,发现了uCrop这个框架,这个框架的星星数很多,就决定使用这个框架

uCrop的Github地址:https://github.com/Yalantis/uCrop

uCrop的特点:

  1. 裁剪框不动,图片动
  2. 图片可以旋转,缩放
  3. 支持各种比例裁剪框

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
  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
Android 中,可以使用系统自带的裁剪工具来对选择的图片进行裁剪。以下是一些基本步骤: 1. 创建一个 Intent 对象,用于启动裁剪工具: ``` Intent intent = new Intent("com.android.camera.action.CROP"); ``` 2. 设置 Intent 的数据和类型: ``` intent.setDataAndType(uri, "image/*"); ``` 其中,uri 表示选择的图片的 Uri。 3. 设置裁剪工具的参数: ``` intent.putExtra("crop", "true"); intent.putExtra("aspectX", aspectX); intent.putExtra("aspectY", aspectY); intent.putExtra("outputX", outputX); intent.putExtra("outputY", outputY); intent.putExtra("scale", true); intent.putExtra("return-data", false); intent.putExtra(MediaStore.EXTRA_OUTPUT, outputUri); ``` 其中,aspectX 和 aspectY 分别表示裁剪框的宽高比,outputX 和 outputY 分别表示输出图片的宽高(单位为像素),outputUri 表示输出图片的 Uri。 4. 启动裁剪工具: ``` startActivityForResult(intent, REQUEST_CODE_CROP); ``` 5. 在 onActivityResult 方法中获取裁剪后的图片: ``` @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE_CROP && resultCode == RESULT_OK) { Bitmap bitmap = BitmapFactory.decodeFile(outputUri.getPath()); imageView.setImageBitmap(bitmap); } } ``` 需要注意的是,裁剪工具并不是所有 Android 系统都支持,有些系统可能没有预装相应的应用程序,因此建议在使用裁剪工具之前先检查系统是否支持。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值