拍照相册选择器
来源:互联网 发布:sybase恢复数据库 编辑:程序博客网 时间:2024/06/06 03:08
DemoMainActivity-->UIElementActivity-->AddPhotoActivity
涉及到的类
AbHttpUtil:网络请求类
AbFileUtil:文件操作类
AbDialogUtil:对话框管理类
AbToastUtil:Toast管理类
图片的来源包括本地相册和相机拍照
涉及到的类
AbHttpUtil:网络请求类
AbFileUtil:文件操作类
AbDialogUtil:对话框管理类
AbToastUtil:Toast管理类
图片的来源包括本地相册和相机拍照
权限
<uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
private ImageView imagview; /* 用来标识请求照相功能的activity */ private static final int CAMERA_WITH_DATA = 3023; /* 用来标识请求gallery的activity */ private static final int PHOTO_PICKED_WITH_DATA = 3021; /* 用来标识请求裁剪图片后的activity */ private static final int CAMERA_CROP_DATA = 3022; File currentPhotoFile=null; //相机拍照 case R.id.btCamera: try{ String fileName = "camera_"+new Random().nextInt(1000)+ "-"+System.currentTimeMillis()+".png"; String photo_dir = AbFileUtil.getImageDownloadDir(this); //照相机拍照得到的图片 currentPhotoFile = new File(photo_dir,fileName); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE,null); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(currentPhotoFile)); startActivityForResult(intent, CAMERA_WITH_DATA); }catch (Exception e){ e.printStackTrace(); } break; //相册选择 case R.id.btGrallery: try{ Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); intent.setType("image/*"); startActivityForResult(intent,PHOTO_PICKED_WITH_DATA); }catch (Exception e){ e.printStackTrace(); } break;--------------------------------------------------------------------------@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(resultCode != RESULT_OK){ return; } String currentFilePath = null; switch (requestCode){ case CAMERA_WITH_DATA: currentFilePath = currentPhotoFile.getPath(); Log.i("camera","从拍照获取的图片的路径是"+currentFilePath); imagview.setImageURI(Uri.fromFile(currentPhotoFile)); break; case PHOTO_PICKED_WITH_DATA: Uri uri = data.getData(); currentFilePath = getPath(uri); Log.i("camera","从相册获取到的图片路径"+currentFilePath); imagview.setImageURI(uri); break; } } /** * 从相册得到的url转换为SD卡中图片路径 */ public String getPath(Uri uri) { if(AbStrUtil.isEmpty(uri.getAuthority())){ return null; } String[] proj = { MediaStore.Images.Media.DATA }; CursorLoader loader = new CursorLoader(this, uri, proj, null, null, null); Cursor cursor = loader.loadInBackground(); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); }
运行Logocat
I/camera ( 4226): 从拍照获取的图片的路径是/storage/emulated/0/download/com.xxx.andbasetest/images/camera_685-1513759389911.png
I/camera ( 4226): 从相册获取到的图片路径/storage/emulated/0/Pictures/新建相册/超级截屏_20171130_100259.png
阅读全文
0 0
- 拍照相册选择器
- 从本地相册选择和拍照、从打开本地文件选择器
- 拍照,相册
- 相册拍照
- Android中的支持拍照和选择本地相册的图片选择器
- 好用的图片选择器,支持单选多选,相册里面又拍照
- 上传头像 拍照 相册
- 系统相册和拍照
- 拍照、相册裁剪
- Android拍照、相册选择
- 拍照、相册、通讯录
- 拍照,和获取相册
- 相机拍照,相册照片
- 拍照打开相册
- 拍照和打开相册
- Cocos2d-x 3.x 头像选择器,本地相册与拍照+头像编辑功能(Android、IOS双平台实现)
- Android加载相册和拍照
- 拍照、从相册选图
- js 获取焦点事件所在的对象
- 在windows下通过Anaconda搭建tensorflow环境
- 浅析被element.style所覆盖的样式
- table td 文字显示两行,并且以…结尾,在360兼容模式不兼容解决方案。
- 订单系统的优化方案
- 拍照相册选择器
- mybatis经常会使用到的细节
- Imagenet 论文里的 single crop evaluation(test)
- 《SpringCloud微服务实战》学习笔记之断路器Hystrix
- OPenGl学习
- ANSI X9.19 MAC算法介绍
- web前端第十一天
- java字符串(二)-StringBuilder和StringBuffer
- 生成随机数字字母组合参数