[Android]在App中使用相机
16lz
2021-12-04
如果要在自己的应用中实现拍照的功能,首先要在AndroidManifest.xml文件中添加权限:
<uses-permission android:name="android.permission.CAMERA"/>
启动相机的方法非常简单,通过intent访问MediaStore.ACTION_IMAGE_CAPTURE
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(intent, 1);
拍照并确认后,Activity的onActivityResult方法会被调用,在这里可以获取图片的数据。
onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { if (resultCode == RESULT_OK) { Bitmap bmPhoto = (Bitmap) data.getExtras().get("data"); // You can set bitmap to ImageView here } }}
用这种方法,会发现获取的Bitmap很小,这其实是拍下的图片的缩略图。
如果想获取原始的大图,推荐的方法是在启动相机前先指定好图片的文件地址,通知intent,同时也保留在成员变量中。
然后在onActivityResult函数中,可以直接打开该文件。
第一段代码做如下修改:
String sFileFullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/test.jpg";File file = new File(sFileFullPath);Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));startActivityForResult(intent, 1);
更多相关文章
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
- Android获取设备唯一标识完美解决方案
- android WebView 图片缩放功能小结
- Android(安卓)主流图片库Picasso Glide Fresco对比分析
- Android(安卓)Q 电量使用图分析 show app usage
- Android获取屏幕大小
- 安卓(android)使用GPS,获取经纬度
- Android获取基带版本
- Android(安卓)获取存储卡路径和空间使用情况