android 通过Intent打开相册并获取选择的图片
16lz
2021-01-26
相信大家在工作都要用到获取手机图片的需求,今天给大家介绍一下,我在项目中学习到的获取图片的方法。
话不多说,上代码:
通过intent获取手机中所以的图片
public static final int PHOTOZOOM = 2; // 缩放
public static final int PHOTORESOULT = 3;// 结果
public static final String IMAGE_UNSPECIFIED = "image/*";
Intent intent = new Intent(Intent.ACTION_GET_CONTENT,
null);
intent.setDataAndType(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
IMAGE_UNSPECIFIED);
startActivityForResult(intent, PHOTOZOOM);
2.onActivityResult方法
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PHOTOZOOM) { startPhotoZoom(data.getData()); Uri uri = data.getData(); String[] pojo = { MediaStore.Images.Media.DATA }; @SuppressWarnings("deprecation") Cursor cursor = managedQuery(uri, pojo, null, null, null); if (cursor != null) { int index = cursor .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); String path = cursor.getString(index); if (path != null) { picPath = path; } } } // 处理结果 if (requestCode == PHOTORESOULT) { Bundle bundle = data.getExtras(); if (bundle != null) { Bitmap photo = bundle.getParcelable("data"); ByteArrayOutputStream stream = new ByteArrayOutputStream(); photo.compress(Bitmap.CompressFormat.JPEG, 75, stream);// (0-100)压缩文件// icon.setImageBitmap(photo); } if (picPath == null) { Toast.makeText(SendImageActivity.this, "未修改图片!", Toast.LENGTH_SHORT) .show(); } else { final File file = new File(picPath); Log.i("picPath", "******" + picPath); if (file != null) { //在这的file就是你获取到的图片文件 } } } super.onActivityResult(requestCode, resultCode, data); }
3.图片缩放方法
public void startPhotoZoom(Uri uri) { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, IMAGE_UNSPECIFIED); intent.putExtra("crop", "true"); // aspectX aspectY 是宽高的比例 intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); // outputX outputY 是裁剪图片宽高 intent.putExtra("outputX", 200); intent.putExtra("outputY", 200); intent.putExtra("return-data", true); startActivityForResult(intent, PHOTORESOULT); }
更多相关文章
- Android-- ArrayAdapter用法举例
- Android学习笔记(21):ImageView及其子类
- 一起学android之如何获取网络类型并判断是否可用(20)
- Android中的图像处理
- Android(安卓)实现多图分享到微信朋友圈
- Android中MPAndroidChart使用Demo
- Android(安卓)Developers:拖动和缩放
- 获取手机屏幕大小
- android wifi 点对点传输