Android裁剪图片(UCrop)使用说明
2018-01-28 15:02
369 查看
Android裁剪图片(UCrop)使用说明
Android如何打开拍照 打开系统相册参考:http://blog.csdn.net/weixin_37577039/article/details/79186183
使用的是UCrop的一个开源库
参考地址:https://github.com/Yalantis/uCrop
大致流程:
1 project gradle中
allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } }
2 app gradle中添加依赖
compile 'com.github.yalantis:ucrop:2.2.1'
最新版本参考github
3 权限配置
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
4000
4 manifest.xml中配置
<activity android:name="com.yalantis.ucrop.UCropActivity" android:screenOrientation="portrait" android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
说明:
android:screenOrientation=”landscape”是限制此页面横屏显示,
android:screenOrientation=”portrait”是限制此页面数竖屏显示。
5 在拍照后的回传中设置
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { fragment4ImageView0 = findViewById(R.id.fragment4ImageView0); if (resultCode == MainActivity.RESULT_OK) { // 回传成功 switch (requestCode) { // 选择请求码 case GlobalVariable.CAMERA_REQUEST_CODE: { try { // 裁剪 startUCrop(); } catch (Exception e) { e.printStackTrace(); } break; }
6 在相册选择后的回传中设置
case GlobalVariable.GALLERY_REQUEST_CODE: { // 获取图片 try { imageUri = data.getData(); if(imageUri!=null) { startUCrop(); } } catch (Exception e) { e.printStackTrace(); } break; }
7 设置Ucrop方法
private void startUCrop(){ //裁剪后保存到文件中 destinationUri = Uri.fromFile(new File(getCacheDir(), "myCroppedImage.jpg")); UCrop uCrop = UCrop.of(imageUri, destinationUri); UCrop.Options options = new UCrop.Options(); //设置裁剪图片可操作的手势 options.setAllowedGestures(UCropActivity.SCALE, UCropActivity.ROTATE, UCropActivity.ALL); //设置toolbar颜色 options.setToolbarColor(ActivityCompat.getColor(this, R.color.orange2)); //设置状态栏颜色 options.setStatusBarColor(ActivityCompat.getColor(this, R.color.orange2)); //是否能调整裁剪框 // options.setFreeStyleCropEnabled(true); uCrop.withOptions(options); uCrop.start(this); }
UCrop.of(imageUri, destinationUri) 原图片URI地址 生成图片的URI地址
8 设置UCrop回传 处理裁剪后的图片
case UCrop.REQUEST_CROP: { // 裁剪照片 final Uri croppedUri = UCrop.getOutput(data); try { if(croppedUri!=null) { Bitmap bit = BitmapFactory.decodeStream(getContentResolver().openInputStream(croppedUri)); fragment4ImageView0.setImageBitmap(bit); } } catch (Exception e) { e.printStackTrace(); } break; } case UCrop.RESULT_ERROR: { final Throwable cropError = UCrop.getError(data); Log.i("RESULT_ERROR","UCrop_RESULT_ERROR"); break; }
相关文章推荐
- 如何使用Android MediaStore裁剪大图片
- android自定义View实现裁剪图片功能,不使用系统的
- 如何使用Android MediaStore裁剪大图片
- 使用Android MediaStore裁剪大图片初次探究
- android使用系统裁剪图片
- 【Android】使用系统相机或者从相册中获取图片资源并进行适当裁剪
- 如何使用Android MediaStore裁剪大图片
- JS 使用 Android + IOS 相册 + 相机 进行自定义头像 + 限制裁剪后图片尺寸 + base64 string 与 图片互相转换
- 使用Java代码在Android中实现图片裁剪功能
- 如何使用Android MediaStore裁剪大图片
- UCrop:图片裁剪开源库详细使用
- Android图片裁剪库——cropper使用,完美解决图片填充不满布局问题
- 【译】如何使用Android MediaStore裁剪大图片
- 【译】如何使用Android MediaStore裁剪大图片
- 【译】如何使用Android MediaStore裁剪大图片
- uCrop图片裁剪开源库使用总结
- 如何使用Android MediaStore裁剪大图片
- 4.14-2 如何使用Android MediaStore裁剪大图片
- 如何使用Android MediaStore裁剪大图片
- 【译】如何使用Android MediaStore裁剪大图片