【Android】调用系统相机拍摄并预览图像
2016-07-13 11:30
453 查看
首先是坑爹的权限
其中
这两个对SD卡的读取权限要写在application外面
我们设置一个Button作为调用相机按钮,一个ImageView作为显示图像
对应的活动里
建议去看android的开发文档 写的比较清楚
之后是调用系统相册获取图像点这里看下一篇———-调用系统相册
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-feature android:name = "android.hardware.camera" /> <uses-feature android:name = "android.hardware.camera.autofocus" />
其中
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
这两个对SD卡的读取权限要写在application外面
我们设置一个Button作为调用相机按钮,一个ImageView作为显示图像
<ImageView android:id="@+id/image_camera" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone"/> <Button android:id="@+id/add_picture_from_camera" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="拍照"/>
对应的活动里
add_pic_from_camera=(Button)findViewById(R.id.add_picture_from_camera); image_camera=(ImageView)findViewById(R.id.image_camera); add_pic_from_camera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent_camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //创建camera的Intent image_camera_file=new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".jpg"); //设置sdcard的路径及图片文件名 intent_camera.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(image_camera_file)); startActivityForResult(intent_camera,RESULT_ADD_PIC_FROM_CAMERA); //启动带返回值的activity } }); //图片点击预览 image_camera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(image_camera_file),"image/*"); //告诉系统这是个image类型 调用相应的预览 startActivity(intent); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode==RESULT_ADD_PIC_FROM_CAMERA) { try{ //建议使用设置bitmap而不用setImageUri Bitmap bitmap=MediaStore.Images.Media.getBitmap(ContentActivity.this.getContentResolver(),Uri.fromFile(image_camera_file)); image_camera.setImageBitmap(bitmap); image_camera.setVisibility(View.VISIBLE); } //记得要用异常捕获 catch (Exception e) { Log.v("ContentActivity","Expection"+Log.getStackTraceString(e)); return; } } }
建议去看android的开发文档 写的比较清楚
之后是调用系统相册获取图像点这里看下一篇———-调用系统相册
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories