implementation 'com.facebook.fresco:animated-gif:1.5.0'
implementation 'com.facebook.fresco:fresco:1.5.0'
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.paizhao:
// //意图
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//带值跳转
startActivityForResult(intent, 111);
break;
case R.id.xiangce:
//意图
Intent intent1 = new Intent(Intent.ACTION_PICK);
//类型
intent1.setType("image/*");
//带值跳转
startActivityForResult(intent1, 222);
break;
}
}
/**
* 吊起相机
*
* @param requestCode
* @param resultCode
* @param data
*/
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 111:
if (data != null) {
Bitmap bitmap = data.getParcelableExtra("data");
ArrayList<Object> list = new ArrayList<>();
list.add(bitmap);
String s = bitmapToString(bitmap);
Log.e(TAG, "onActivityResult: "+ s);
initReplaceHeadImage(s);
mineHead.setImageURI(UriUtil.parseUriOrNull("file://" + s));
}
break;
case 222:
//路径
if (data != null) {
Uri uri = data.getData();
crop(uri);
}
break;
case CAIJIAN_FLAG:
if (data != null) {
Bitmap bitmap1 = data.getParcelableExtra("data");
String s1 = bitmapToString(bitmap1);
Log.e(TAG, "onActivityResult: "+ s1);
initReplaceHeadImage(s1);
mineHead.setImageURI(UriUtil.parseUriOrNull("file://" + s1));
}
break;
}
}
public String bitmapToString(Bitmap bitmap) {
//将bitmap转换为uri
Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), bitmap, null, null));
String[] proj = {MediaStore.Images.Media.DATA};
Cursor actualimagecursor = getActivity().managedQuery(uri, proj, null, null, null);
int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
actualimagecursor.moveToFirst();
String img_path = actualimagecursor.getString(actual_image_column_index);
return img_path;
}
//剪裁图片
private void crop(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
//支持裁剪
intent.putExtra("CROP", true);
//裁剪的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
//裁剪后输出图片的尺寸大小
intent.putExtra("outputX", 250);
intent.putExtra("outputY", 250);
//将图片返回给data
intent.putExtra("return-data", true);
startActivityForResult(intent, CAIJIAN_FLAG);
}