调用系统相机拍照、调用相册、调用系统录像并获取缩略图
来源:互联网 发布:网络胜利组漫画在线 编辑:程序博客网 时间:2024/05/17 06:58
第一次写博客,可能写的不太好,望各位IT人士包涵。
这里介绍了如何调用系统拍照并返回、调用系统相册选取图片并返回、调用系统相机录像并获取缩略图。
注:TAKE_PICTURE、CHOOSE_PICTURE、TAKE_VEDIO均为自定义的常量,用于拍照成功、选取图片成功、录像成功返回标识
1、调用系统拍照
//调用系统相机拍照Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //指定照片保存路径(SD卡),image.jpg为一个临时文件,每次拍照后这个图片都会被替换File file=new File("mnt/sdcard/image.png"); Uri imageUri = Uri.fromFile(file); //这句代码是保存到此路径 openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(openCameraIntent, TAKE_PICTURE);
2、调用系统相册
//调用系统相册Intent openAlbumIntent = new Intent(Intent.ACTION_GET_CONTENT);//设置type为image类型的(png、jpg等所有图片格式都支持,如果*改为png的话,则只会显示png格式的图片) openAlbumIntent.setType("image/*");startActivityForResult(openAlbumIntent,CHOOSE_PICTURE);
3、调用系统相机录像并返回
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);//设置视频的品质为高 intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);File file2 = new File("/mnt/sdcard/123.mp4"); if (file.exists()) { file.delete(); } Uri uri = Uri.fromFile(file); //保存到file文件 intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); startActivityForResult(intent, TAKE_VEDIO);
4、成功后的处理
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == getActivity().RESULT_OK) { ImageView imageView = new ImageView(getActivity()); switch (requestCode) { //拍照成功 case TAKE_PICTURE: Bitmap bitmap =BitmapFactory.decodeFile(Environment .getExternalStorageDirectory() + "/image.jpg"); imageView.setImageBitmap(bitmap); break; //调用系统相册成功 case CHOOSE_PICTURE: ContentResolver resolver = activity.getContentResolver(); // 照片的原始资源地址 Uri originalUri = data.getData(); // 使用ContentProvider通过URI获取原始图片 Bitmap photo = MediaStore.Images.Media.getBitmap(resolver, originalUri); imageView.setImageBitmap(bitmap); break; //录像成功 case TakeCapture.TAKE_VEDIO: File file2 = new File("/mnt/sdcard/123.mp4"); //ThumbnailUtil.getVideoThumbnail()方法介绍往下看 Bitmap bitmap2 = ThumbnailUtil.getVideoThumbnail(file2.getAbsolutePath(), width,height,MediaStore.Images.Thumbnails.MICRO_KIND);imageView.setImageBitmap(bitmap2); break; default: break; } } }
5、获取视频的缩略图
/** * 获取视频的缩略图 * 先通过ThumbnailUtils来创建一个视频的缩略图,然后再利用ThumbnailUtils来生成指定大小的缩略图。 * 如果想要的缩略图的宽和高都小于MICRO_KIND,则类型要使用MICRO_KIND作为kind的值,这样会节省内存。 * @param videoPath 视频的路径 * @param width 指定输出视频缩略图的宽度 * @param height 指定输出视频缩略图的高度度 * @param kind 参照MediaStore.Images.Thumbnails类中的常量MINI_KIND和MICRO_KIND。 * 其中,MINI_KIND: 512 x 384,MICRO_KIND: 96 x 96 * @return 指定大小的视频缩略图 */ public static Bitmap getVideoThumbnail(String videoPath, int width, int height, int kind) { Bitmap bitmap = null; // 获取视频的缩略图 bitmap = ThumbnailUtils.createVideoThumbnail(videoPath, kind); bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height, ThumbnailUtils.OPTIONS_RECYCLE_INPUT); return bitmap; }
写的比较乱,望大家包涵
1 0
- 调用系统相机拍照、调用相册、调用系统录像并获取缩略图
- Android 调用系统相机拍照、录像
- 调用系统相册和系统相机拍照
- android中调用系统相机拍照并访问本地相册
- android调用系统相机拍照之获取原图和缩略图
- 调用系统相机拍照和选择相册
- Android调用系统相册和相机拍照
- 调用系统相机相册
- 调用系统相册,相机
- 调用系统相机相册
- Android开发之调用相机拍照和调用系统相册
- Android调用系统相机拍照并获取图片
- 调用android系统相机拍照并保存
- 调用android系统相机拍照并保存
- 调用android系统相机拍照并保存
- 调用android系统相机拍照并保存
- 调用android系统相机拍照并保存
- android调用系统相机拍照并裁剪
- fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- C++资源汇总
- AlertDialog 透明全屏
- Spring AOP 管理事务
- 人脸检测
- 调用系统相机拍照、调用相册、调用系统录像并获取缩略图
- 设计模式-建造者模式(Builder)
- 最新Android & iOS设计尺寸规范
- iOS,面试必看,最全梳理
- 请问java中,抽象类里的抽象方法都要在它的子类中全部实现吗?能不能有些抽象方法不实现?
- ScrapyJS Splash 400 bad request原因及解决方法
- Audio Focus机制以及AudioManager的使用
- 程序集
- android Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunching failed, se