图片选取,压缩,裁剪等的一个工具使用
来源:互联网 发布:macbookpro软件大全 编辑:程序博客网 时间:2024/06/06 09:27
https://github.com/crazycodeboy/TakePhoto
详细参照github,下位一个demo
import android.content.Context;import android.content.Intent;import android.database.Cursor;import android.graphics.Bitmap;import android.net.Uri;import android.os.Bundle;import android.provider.MediaStore;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.WindowManager;import android.widget.ImageView;import android.widget.TextView;import java.io.File;import butterknife.BindView;import butterknife.ButterKnife;public class ImageChooseActivity extends TakePhotoActivity { @BindView(R.id.title) TitleView title; @BindView(R.id.img_show) ImageView imgShow; @BindView(R.id.btn_commit) RectangleButton btnCommit; private Context context = ImageChooseActivity.this; private Uri outputFileUri; private String imageUrisLocal = ""; private String imageHtpPath = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_image_choose); ButterKnife.bind(this); initView(); } private void initView() { title.setTitle("选择图片"); title.setmTxtTitleVisible(View.INVISIBLE); title.setmImgRightImg(R.drawable.btn_camera); btnCommit.setmTxtBiggestBtn("确定"); Intent intent = getIntent(); imageUrisLocal = intent.getStringExtra("imgUriLocal"); imageHtpPath = intent.getStringExtra("FeatureImgPath"); if(!imageUrisLocal.equals("")) { Uri uri = Uri.parse(imageUrisLocal); imgShow.setImageURI(uri); } else if (!"".equals(imageHtpPath)) { ImageUtil.setImage(imageHtpPath, imgShow); } btnListener(); } private void btnListener() { title.setBackListener(new TitleView.BackClickListener() { @Override public void backClick(View v, int pos) { if (pos == 0) { finish(); } if (pos == 1) { showDialog(); } } }); btnCommit.setmBiggestBtn(new MyBtnClickListener() { @Override public void clickIt(View v) { Intent intent = new Intent(context, CreateEventBIActivity.class); intent.putExtra("imgUri", imageUrisLocal); setResult(201, intent); finish(); } }); } private void showDialog() { View bottomView = LayoutInflater.from(context).inflate(R.layout.layout_camera_gallery_dialog, null); TextView btnCamera = (TextView) bottomView.findViewById(R.id.btn_camera); TextView btnGallery = (TextView) bottomView.findViewById(R.id.btn_gallery); final MyDialog bottomDialog = new MyDialog(context, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT, Gravity.CENTER, bottomView, R.style.dialog); btnCamera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { File file = FileUtils.createImageFile(); outputFileUri = Uri.fromFile(file);
//去拍照,然后存储的地址
//设置压缩
CompressConfig compressConfig=new CompressConfig.Builder().setMaxSize(50*1024).setMaxPixel(800).create();getTakePhoto().onEnableCompress(compressConfig,true);getTakePhoto().onPickFromCapture(outputFileUri);//设置裁剪// CropOptions cropOptions=new CropOptions.Builder().setAspectX(1).setAspectY(1).setWithOwnCrop(true).create();// getTakePhoto().onPickFromCaptureWithCrop(outputFileUri,cropOptions);// Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);// intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);// if (intent.resolveActivity(getPackageManager()) != null) {// startActivityForResult(intent, 101);// } bottomDialog.dismiss(); } }); btnGallery.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { File file = FileUtils.createImageFile(); outputFileUri = Uri.fromFile(file); getTakePhoto().onPickFromDocuments();// Intent intent = new Intent(Intent.ACTION_PICK);// intent.setType("image/*");// startActivityForResult(intent, 102);//这里是进行裁剪的时候用的// CropOptions cropOptions=new CropOptions.Builder().setAspectX(1).setAspectY(1).setWithOwnCrop(true).create();// getTakePhoto().onPickFromDocumentsWithCrop(outputFileUri,cropOptions); bottomDialog.dismiss(); } }); } //重写tackphoto的方法,显示选择图片后的会掉 @Override public void takeCancel() { super.takeCancel(); } @Override public void takeFail(TResult result, String msg) { super.takeFail(result, msg); } @Override public void takeSuccess(TResult result) { Log.e("======","选取成功的回调"+"file://"+result.getImage().getCompressPath()); //file://getOriginalPath-获取到原始的地址getcomp..---获取到压缩后地址 imgShow.setImageURI(Uri.parse("file://"+result.getImage().getOriginalPath()));// Uri uri = Uri.parse("https://pic4.zhimg.com/03b2d57be62b30f158f48f388c8f3f33_b.png");// SimpleDraweeView commonImageView = (SimpleDraweeView) findViewById(R.id.commonImageView);// commonImageView.setImageURI(uri); //imgShow.setImageBitmap(result.getImage().getCompressPath()); super.takeSuccess(result); }}
0 0
- 图片选取,压缩,裁剪等的一个工具使用
- JAVA 裁剪 压缩图片 工具类
- 图片的压缩与裁剪
- 图片的裁剪与压缩
- 调用系统相册选取照片并使用系统裁剪图片
- 使用JCrop进行图片裁剪,裁剪js说明,裁剪预览,裁剪上传,裁剪设计的图片处理的工具类和代码
- Android图片压缩(包含拍照或从相册选取图片,PopupWindow的使用)
- bitmap工具类(读取、存入、裁剪、压缩等);
- 上传图片,对图片进行等比例缩放,及局部裁剪的工具类
- Android 图像选取 图片剪裁 照相选图 照相裁剪 图像压缩 11 - 14更新
- android下的图片裁剪和压缩
- C# 图片的压缩与裁剪
- 图片选取器的使用
- node图片处理工具gm的使用:图片水印、图片验证码、图片裁剪示例
- 图片压缩与裁剪
- android 拍照裁剪以及本地图片裁剪工具类使用
- android调用系统拍照程序和从图库选取图片,返回后调用系统裁剪工具
- android调用系统拍照程序和从图库选取图片,返回后调用系统裁剪工具
- C++ sort()函数对结构体排序(STL例子)
- Spark朴素贝叶斯(naiveBayes)实践
- 系统的简单注解
- Spark2.1.0集群部署
- cinder云硬盘备份恢复
- 图片选取,压缩,裁剪等的一个工具使用
- JavaScript数据结构之 二叉排序树
- 文本框在ie中输入不了文字
- 自定义编辑框控件-位图背景编辑框
- Centos6.5安装mysql5.7,YUM和二进制tar.gz包方法
- 怎么用变量取JSON中的属性
- 凸集与非凸集,凸函数与凹函数,凸优化
- TreeView的使用方法
- iOS 获取通讯录的4种方式详解