base64可以用在线转换去测试 http://imgbase64.duoshitong.com/
效果图可看:https://www.jianshu.com/p/0a2d8466fe6d?
剪切效果可看:https://www.jianshu.com/p/0a2d8466fe6d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
参考文献:https://blog.csdn.net/android_wangweida/article/details/77823533
base64在后端请求一般是有前缀的
“data:image/jpeg;base64,”(我的压缩图片是jpeg格式)
mBitmap.compress(Bitmap.CompressFormat.JPEG, 70, baos);
byte[] b = baos.toByteArray();
Log.d(“d”, “压缩后的大小=” + b.length);
String icon64 = Base64.encodeToString(b, Base64.NO_WRAP);
Log.e(“icon64”,icon64);
initByAZ(“data:image/jpeg;base64,”+icon64);
//android 7.0系统解决拍照的问题
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
builder.detectFileUriExposure();
我这边自定义了一个弹出布局
参考文献:https://www.jianshu.com/p/26d29e187f89
布局一样的就不重写了
参考文献:https://www.jianshu.com/p/0a2d8466fe6d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation (重点参考)
点击事件做了修改
bt_album.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
i.setType(“image/*”);
startActivityForResult(i, CHOOSE_PICTURE);
popupWindow.dismiss();
}
});
bt_camera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent openCameraIntent = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);
tempUri = Uri.fromFile(new File(Environment
.getExternalStorageDirectory(), "person_image.jpg"));
// 将拍照所得的相片保存到SD卡根目录
openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, tempUri);
startActivityForResult(openCameraIntent, TAKE_PICTURE);
// takeCamera(TAKE_PICTURE);
popupWindow.dismiss();
}
});
bt_cancle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupWindow.dismiss();
}
});
上传到服务器请求和之前写的okhttp请求差不多,就不写了
https://blog.csdn.net/qq_36022808/article/details/89222856