一、集成
compile 'com.jph.takephoto:takephoto_library:4.0.3'
二、Activity集成开源类并重写3个方法
public class TestActivity extends TakePhotoActivity {
private TextView tv;
private ImageView img;
private Uri imageUri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_photo);
//设置一个裁剪后图片的存储位置
File file = new File(Environment.getExternalStorageDirectory(), "/temp/" + System.currentTimeMillis() + ".jpg");
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
imageUri = Uri.fromFile(file);
//绑定视图
tv=findViewById(R.id.textView);
img=findViewById(R.id.imageView);
//获取一张图片不裁剪
//getTakePhoto().onPickFromGallery();
//获取一张图片并裁剪
CropOptions cropOptions=new CropOptions.Builder().setAspectX(1).setAspectY(1).setOutputX(50).setOutputY(50).setWithOwnCrop(true).create();
getTakePhoto().onPickFromGalleryWithCrop(imageUri,cropOptions);
}
//重写3个方法:成功后操作、失败、取消,其实一般重写takesuccess就行了。
@Override
public void takeSuccess(TResult result) {
super.takeSuccess(result);
// Log.e("success",""+result.getImage().getOriginalPath().toString());
//成功后将图片地址和图片显示到控件上
tv.setText(result.getImage().getOriginalPath().toString());
Glide.with(this).load(new File(result.getImage().getOriginalPath())).into(img);
}
@Override
public void takeFail(TResult result, String msg) {
super.takeFail(result, msg);
}
@Override
public void takeCancel() {
super.takeCancel();
}
}
三、效果
PS:上面的activity直接调用了打开相册选择图片的方法,也可以用一个按钮来触发这个操作
开源链接里面有详细的说明