【Android】相机的简单调用
2015-11-20 19:06
555 查看
不多说,慢慢积累,希望有一天能玩转这个领域。
在项目开发中几乎所有程序都不可避免的要用上相机,因为你要上传头像,不可避免的就要有拍照功能。多数的软件会采用调用系统相机来完成这个业务。接下来要讲的就是调用系统相机拍照来保存成头像。
开始
网上相关的代码一大堆,但是我不能每次都去网上扒,这是一种不思进取的行为,扒过一次我们就要记住它,弄懂它!干掉它!
1、调用系统相机
就下面的两句,只要你执行这两句就能
对,就这么简单,有疑问?直接在下面评论就行,我帮你解决!或者liumeng_android@163.com 邮给我。前辈,大神欢迎赐教!
结束,谢谢!鞠躬~
在项目开发中几乎所有程序都不可避免的要用上相机,因为你要上传头像,不可避免的就要有拍照功能。多数的软件会采用调用系统相机来完成这个业务。接下来要讲的就是调用系统相机拍照来保存成头像。
开始
网上相关的代码一大堆,但是我不能每次都去网上扒,这是一种不思进取的行为,扒过一次我们就要记住它,弄懂它!干掉它!
1、调用系统相机
就下面的两句,只要你执行这两句就能
// 就这样就打开相机了 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 1);//这个1的含义,是拍完照之后需要用到的。 //当我们startActivityForResult(intent,1)拍完照之后就会调用onActivityResult()这个方法。下面介绍一下这个方法(注释为源码注释)
/** * Called when an activity you launched exits, giving you the requestCode * you started it with, the resultCode it returned, and any additional * data from it. The <var>resultCode</var> will be * {@link #RESULT_CANCELED} if the activity explicitly returned that, * didn't return any result, or crashed during its operation. * * <p>You will receive this call immediately before onResume() when your * activity is re-starting. * * <p>This method is never invoked if your activity sets * {@link android.R.styleable#AndroidManifestActivity_noHistory noHistory} to * <code>true</code>. *【通俗的讲就是,让你知道是谁调用的此方法,获取相应的data】 * @param requestCode The integer request code originally supplied to * startActivityForResult(), allowing you to identify who this * result came from. * 【通俗的讲就是,让你知道是那个Activity返回的数据,获取相应的data】 * @param resultCode The integer result code returned by the child activity * through its setResult(). * @param data An Intent, which can return result data to the caller * (various data can be attached to Intent "extras"). * * @see #startActivityForResult * @see #createPendingResult * @see #setResult(int) */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 这里的PHOTO_RESULT = 1;就是之前我们starActivity是传递的1;拍完照后就会调用此方法,并把照片放到Bundle 里面, if (requestCode == PHOTO_RESULT) { Bundle extras = data.getExtras(); if (extras != null) { Bitmap photo = extras.getParcelable("data"); ByteArrayOutputStream stream = new ByteArrayOutputStream(); //将图片压缩 photo.compress(Bitmap.CompressFormat.JPEG, 75, stream); //将图片设置到ImageView上展示即可。 header_img.setImageBitmap(photo); } } } /*不知道你时候已经了解,粘源码注释的意思是,如果你有不懂得知识可直接查看源码,我认为多数情况下源码还是描述的很清晰的*/
对,就这么简单,有疑问?直接在下面评论就行,我帮你解决!或者liumeng_android@163.com 邮给我。前辈,大神欢迎赐教!
结束,谢谢!鞠躬~
相关文章推荐
- 使用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