Android 实现相机、相册、裁剪功能

拍照

public void paizhao(View view) {
		// 通过隐式跳转打开相机拍照的页面
		Intent intent = new Intent();
		// 指定动作...拍照的动作 CAPTURE...捕获
		intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
		// -------保存到sd卡
		intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(path)));
		// 拍照的目的是拿到拍的图片
		startActivityForResult(intent, 1000);
	}
@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (requestCode == 1000 && resultCode == RESULT_OK) {
			// 可以拿回数据
			//Bitmap bitmap = data.getParcelableExtra("data");
			//img_view.setImageBitmap(bitmap);
			img_view.setImageURI(Uri.fromFile(new File(path)));
		}
	}

相册

/**
	* 相册
	*/
	public void xiangce(View view) {
		// 通过隐式跳转方式打开相册
		Intent intent = new Intent();
		intent.setAction(Intent.ACTION_PICK);
		// 设置图片的类型
		intent.setType("image/*");
		// 需要回传值
		startActivityForResult(intent, 999);
	}
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (requestCode == 999 && resultCode == RESULT_OK) {
			// 取出相册的图片
			Uri uri = data.getData();
			img_view.setImageURI(uri);
		}
	}

裁剪

@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		/**
		*	裁剪
		*/
		if (requestCode == 1000 && resultCode == RESULT_OK) {
			//接收裁剪后的数据
			Bitmap bitmap = data.getParcelableExtra("data");
			img_view.setImageBitmap(bitmap);
		}
	}
// 裁剪的方法
	private void crop(Uri fromFile) {
		// 跳转到裁剪页面
		Intent intent = new Intent();
		intent.setAction("com.android.camera.action.CROP");
		// 设置裁剪的图片和类型
		intent.setDataAndType(fromFile, "image/*");
		// 设置是否支持裁剪
		intent.putExtra("crop", "true");
		// 设置裁剪框的比例
		intent.putExtra("aspectX", 1);
		intent.putExtra("aspectY", 1);
		// 设置输出的照片的宽和高
		intent.putExtra("outputX", 249);
		intent.putExtra("outputY", 249);
		// 是否返回裁剪后的数据
		intent.putExtra("return-data", true);
		// 需要回传值
		startActivityForResult(intent, 1000);
	}

猜你喜欢

转载自blog.csdn.net/weixin_43092479/article/details/86559707