打开读取相册照片

//参数声明
private final static int PHOTO_REQUEST_GALLERY = 1;
private final static int PHOTO_CROP = 2;
//启动 Intent

Intent intent = new Intent(Intent.ACTION_PICK, null);
				intent.setDataAndType(
						MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
				startActivityForResult(intent, PHOTO_REQUEST_GALLERY);

  

// ActivityForResult的处理
@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// super.onActivityResult(requestCode, resultCode, data);
		switch (requestCode) {
		case PHOTO_REQUEST_GALLERY:
			if (data != null) {
				startPhotoZoom(data.getData());
			}
			break;
		case PHOTO_CROP:
			if (data != null) {
				setPicToView(data);
				mSetV.setText("保存");
				mCancelV.setVisibility(View.VISIBLE);
				is2Save = true;
			}
			break;

		default:
			break;
		}
	}

  

    /**
	 * 调用android系统自带的图片裁剪,把用户选择的图片 裁剪成适合用户手机的大小
	 * 
	 * @param imagePath
	 */

public void startPhotoZoom(Uri uri){
    // 调用intent跳转的裁间页面
    Intent intent = new Intent("com.android.camera.action.CROP");
    // 传入裁剪图片的路径uri和需要裁剪的格式
    intent.setDataAndType(uri, "image/*");
    // 可裁剪状态
    intent.putExtra("crop", "true");
    // aspectX aspectY 是宽高的比例
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);
    // outputX outputY 是裁剪图片宽高
    intent.putExtra("outputX", 72);
    intent.putExtra("outputY", 72);
    intent.putExtra("return-data", true);
    startActivityForResult(intent, PHOTO_CROP);

}

  private void setPicToView(Intent picdata) {
		Bundle bundle = picdata.getExtras();
		if (bundle != null) {
			Bitmap photo = bundle.getParcelable("data");
			photo.setDensity(Bitmap.DENSITY_NONE);
			mBitmap = photo;
			int w = photo.getWidth();
			int h = photo.getHeight();
			float f = photo.getDensity();
			Drawable drawable = new BitmapDrawable(photo);
			headV.setImageDrawable(drawable);
		}
	}
   

  

原文地址:https://www.cnblogs.com/ct732003684/p/2719713.html