新版版终于开发结束了,感觉有很多知识需要总结一下了。

首先,关于Android中系统相册和相机功能是我们需要常用的,所以在这里记录一下,方便以后查阅。

public void onTakePicClickListener(View v) {hideKeyBoard();// 执行拍照前,应该先判断SD卡是否存在String SDState = Environment.getExternalStorageState();if (SDState.equals(Environment.MEDIA_MOUNTED)) {Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);// "android.media.action.IMAGE_CAPTURE"/*** * 需要说明一下,以下操作使用照相机拍照,拍照后的图片会存放在相册中的 这里使用的这种方式有一个好处就是获取的图片是拍照后的原图 * 如果不实用ContentValues存放照片路径的话,拍照后获取的图片为缩略图不清晰 */ContentValues values = new ContentValues();photoUri = this.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, photoUri);startActivityForResult(intent, PHOTO_REQUEST_TAKEPHOTO);} else {}}
上面这个是调取系统相机的,里面都有详细的说明,就不多做介绍了。

public void onChoosePicClickListener(View v) {hideKeyBoard();Intent intent = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);startActivityForResult(intent, PHOTO_REQUEST_GALLERY);}
这个是调取系统相册的,其实也没有什么特别复杂的东西,只是需要查阅Android系统的事件类型。

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode != RESULT_OK) {return;}if (requestCode == PHOTO_REQUEST_TAKEPHOTO) {if (mFramePhotoView.getVisibility() == View.VISIBLE)mFramePhotoView.setVisibility(View.GONE);doPhoto(requestCode, data);}if (requestCode == PHOTO_REQUEST_GALLERY) {if (mFramePhotoView.getVisibility() == View.VISIBLE)mFramePhotoView.setVisibility(View.GONE);doPhoto(requestCode, data);}}

上面这段代码,我们通过调用不同的事件类型,分别调取了系统的相册和拍照功能,然后返回数据,我们通过onActivityResult方法中的resultcode判断是否获取到数据,requestcode是判断数据是通过哪一个请求源获取的,data就是我们要获取到的数据。然后就可以做其他的处理了。



更多相关文章

  1. Android系统在新进程中启动自定义服务过程(startService)的原理分
  2. Notification中Intent携带数据重复问题
  3. android中的数据存储
  4. android intent调用系统camera
  5. ThreadLocal原理解析(1):数据存取
  6. Android--用JSON解析数据

随机推荐

  1. 页面未随软键盘上升及android隐藏软键盘
  2. Android异步更新UI-线程池-Future-Handle
  3. Android(安卓)wifi设计原理(源码分析)
  4. Android应用模块基本配置元素
  5. java.lang.NoClassDefFoundError错误解决
  6. Android UEventObserver
  7. Android(安卓)混淆 Unknown verification
  8. 沈大海移动开发入门课程android,j2me, 在
  9. Opencv for Android(安卓)之透视变换
  10. [Android Studio] Android studio 多渠道