拍照 打开系统照相机:
//定义图片存储的位置
//定义图片存储的位置
file = new File(Environment.getExternalStorageDirectory(),
System.currentTimeMillis() + ".png");
// 隐式意图打开系统界面 --要求回传
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 存到什么位置
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(intent, OPEN_CAMERA);
打开相册:
// 打开相册
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, OPEN_GALLERY);
裁剪代码:
// 手机自带裁剪功能--调用系统裁剪的意图
public 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);
// 设置图片格式
intent.putExtra("outputFormat", "JPEG");
//是否返回数据
intent.putExtra("return-data", true);
startActivityForResult(intent, CROP);
}
使用框架进行上传:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == OPEN_CAMERA) {
// 图片怎么取出
// imageView.setImageURI(Uri.fromFile(file));
crop(Uri.fromFile(file));
} else if (requestCode == OPEN_GALLERY) {
// 相册应用通过putData设置的图片的uri,所以我们这样拿
Uri uri = data.getData();
// imageView.setImageURI(uri);
crop(uri);
} else if(requestCode==CROP){
//直接拿到一张图片
Bitmap bitmap = data.getParcelableExtra("data");
// 直接拿到一张图片
final Bitmap bitmap = data.getParcelableExtra("data");
File picFile = new File(Environment.getExternalStorageDirectory(),
System.currentTimeMillis() + ".png");
// 把bitmap放置到文件中
// format 格式
// quality 质量
try {
bitmap.compress(CompressFormat.PNG, 100, new FileOutputStream(
picFile));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// 上传服务器
HttpUtils httpUtils = new HttpUtils();
// 必须post get 1k
// 请求方式 请求地址 请求参数 回调
RequestParams params = new RequestParams();
params.addBodyParameter("files", picFile);
httpUtils
.send(HttpMethod.POST,
"http://169.254.161.66:8080/imageupload/servlet/UploadServlet",
params, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0,
String arg1) {
Toast.makeText(MainActivity.this, "上传失败", 0)
.show();
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
Toast.makeText(MainActivity.this, "上传成功", 0)
.show();
imageView.setImageBitmap(bitmap);
}
});
}
}