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

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

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

运行效果

998c88aebed1

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

998c88aebed1

黑马助手.png

使用步骤

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

allprojects {

repositories {

...

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

}

}

998c88aebed1

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干货程序员

998c88aebed1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值