安卓开发之-调用系统相机拍照应注意要点。

(一)调用相机拍照保存至指定文件夹,intent.putExtra(file)可将拍到的照片直接保存到文件夹

但此方法不可用于拍摄视频,同样的在摄像时,如果传入路径的话,会出现画面卡死不动,而同时在传入的路径下面会有一个为空的文件,文件名是对的,但没有数据,而在回调函数onActivityResult中的data不为空,会为你传入的路径名.所以在使用Intent调用相机拍照或摄像时最好不要传入存储路径,否则在不同的机子上会出现不同的问题,按照默认的给定路径寻找文件即可。

(二)如下:拍照

             Intent intent=new Intent();              // 指定开启系统相机的Action
             intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);                        intent.addCategory(Intent.CATEGORY_DEFAULT);              // 根据文件地址创建文件
             File file=new File(FILE_PATH);             // 把文件地址转换成Uri格式
             Uri uri=Uri.fromFile(file);             // 设置系统相机拍摄照片完成后图片文件的存放地址
             intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);

录像:

            Intent intent = new Intent();             intent.setAction("android.media.action.VIDEO_CAPTURE");             intent.addCategory("android.intent.category.DEFAULT");             File file = new File(FILE_PATH);             if(file.exists()){                      file.delete();                       }                     Uri uri = Uri.fromFile(file);              intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);              startActivityForResult(intent, 0);           }     }; 
时间: 2024-10-23 06:48:55

安卓开发之-调用系统相机拍照应注意要点。的相关文章

Android7.0调用系统相机拍照、读取系统相册照片+CropImageView剪裁照片

Android手机拍照.剪裁,并非那么简单 简书地址:[我的简书–T9的第三个三角] 前言 项目中,基本都有用户自定义头像或自定义背景的功能,实现方法一般都是调用系统相机–拍照,或者系统相册–选择照片,然后进行剪裁,最终设为头像或背景. 而在Android6.0之后,需要动态获取权限,而且Android7.0之后,无法直接根据拍照返回的URI拿到图片,这是因为从安卓7.0开始,直接使用本地真实路径被认为是不安全的,会抛出FileUriExposedExCeption异常,本文就是基于这个功能去针

Android6.0机型上调用系统相机拍照返回的resultCode值始终等于0的问题

版权声明:本文为博主原创文章,未经博主允许不得转载. 正常情况下调用系统相机拍照: 如果拍照后点击的是“确定”图标,返回的resultCode = -1(Activity.RESULT_OK): 如果点击的是底部的“返回”键,返回的resultCode = 0(Activity.RESULT_CANCELED). 简单的调用系统相机的写法: //调用系统拍照 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); String p

Android 调用系统相机拍照保存以及调用系统相册的方法

系统已经有的东西,如果我们没有新的需求的话,直接调用是最直接的.下面讲讲调用系统相机拍照并保存图片和如何调用系统相册的方法. 首先看看调用系统相机的核心方法: Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(camera, CAMERA); 相机返回的数据通过下面的回调方法取得,并处理: public static final int CAMERA  = 0x01; @Over

android调用系统相机拍照并保存在本地

import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Calendar; import java.util.Locale; import android.annotation.SuppressLint; import android.app.Activity; import an

Android下载图片/调用系统相机拍照、显示并保存到本地

package com.example.testhttpget; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.http.HttpEntity; import org.apache.

Android调用系统相机拍照保存照片很小解决方案

保存图片小的一般操作步骤: 1. 调用系统相机 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 1); 2. 保存照片 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {  // TODO Auto-generated method s

android 调用系统相机拍照 获取原图

好吧,为了这个问题又折腾了一整天.之前在网上找来的方法,如果在onActivityResult中直接用data.getData()的方式来生成bitmap,其实获取的是拍照生成的缩略图!看看尺寸就知道了.如果要获取原图,还需要一番折腾(特别是对于手里这个Samsung i9000)——之前朋友在不同的机型上使用的方法在我这里一直报错,且属于那种uncaught的错误-.- 话说回来,具体的折腾方法如下(如果不幸你看到了,希望不要“折疼了”): 在拍照的出发按钮的点击事件中写入如下代码: toCa

Android开发教程--关于系统相机拍照获取的照片尺寸较小问题的解决

网上大部分的解决方案,都是如下方式: Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); startActivityForResult(intent,REQUEST_CODE_CAPTURE_CAMEIA); 拍照完成之后,回调: protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resul

iOS 调用系统相机拍照相册功能

写一个按钮直接复制下面代码 视图必须继承 <UIImagePickerControllerDelegate,UIPopoverControllerDelegate,UIActionSheetDelegate>代理 //取拍照片 - (void)showActionSheet { UIActionSheet *sheet; if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCame