Android拍照_安卓压缩图片_安卓调用摄像头_拍照压缩保存本地
2014-08-13 09:35:44  By: dwtedx

android 中调用照相功能有两种方法

一种是调用系统自带的camera:能够用Intent直接开启

另一种是利用SurfaceView:能够添加自己想要的功能

今天我要给大家说的就是直接通过调用自带的camera实现拍照并保存到本地

如果不是开发相机等应该、相信这个方法是你最快、实现最简单的方法

放不多说、首先来看一下怎么打开系统自带的相机吧、方法是通过 Intent 来启动自带的相机

protected void showCamera() {
	Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
	File tmpFile = new File("要保存的路径", "保存的文件名");
	if (tmpFile != null) {
		Uri outputFileUri = Uri.fromFile(tmpFile);
		intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, outputFileUri);
		startActivityForResult(intent, REQUEST_CAMERA);
	}
}


这样我们就拍摄了一张照片、并保存到了你指定的目录下面


这里的 startActivityForResult(intent, REQUEST_CAMERA);

意思是当你拍摄了照片之后要做什么处理、也就是当回到上一个画面会执行

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}


这个里面的方法

然而相机拍摄出来的照片一般会很大、如果我们要使用的话还得压缩一下图片

那么我的压缩方式是这样的、大家看一下我的压缩代码

File file = new File("临时图片路径", "临时图片名");
String errorString = null;
JSONObject result = new JSONObject();
Bitmap bitmap = null;
try {
	// 获得压缩后的bitmap
	bitmap = getScalingBitmap("这里是你刚刚保存图片 Uri");
	OutputStream outStream = new FileOutputStream(file);
	bitmap.compress(Bitmap.CompressFormat.JPEG, 70, outStream);
	outStream.flush();
	outStream.close();
} catch (Exception e) {
	Log.e(TAG, e.toString());
	errorString = e.toString();
} finally {
	if (bitmap != null) {
		bitmap.recycle();
		bitmap = null;
	}
}


这样的话我就可以使用压缩过后的图片、从耳避免内存溢出的问题、希望对大家有帮助

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

DD记账
top
+