当前位置:首页 » 安卓系统 » android调用相机拍照保存

android调用相机拍照保存

发布时间: 2025-01-03 06:53:22

1. android 调用系统照相机拍照后获得图片路径

{privateUrimOutPutFileUri;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ButtontakePiCButton=(Button)this.findViewById(R.id.button1);
takePiCButton.setOnClickListener(this);
}

@Override
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.button1:
saveFullImage();
break;

default:
break;
}
}

privatevoidsaveFullImage(){
Intentintent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
//文件夹aaaa
Stringpath=Environment.getExternalStorageDirectory().toString()+"/aaaa";
Filepath1=newFile(path);
if(!path1.exists()){
path1.mkdirs();
}
Filefile=newFile(path1,System.currentTimeMillis()+".jpg");
mOutPutFileUri=Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT,mOutPutFileUri);
startActivityForResult(intent,1);

}

@Override
protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
super.onActivityResult(requestCode,resultCode,data);
if(requestCode==1){
UriimageUri=null;
if(data!=null){
if(data.hasExtra("data")){
Bitmapthunbnail=data.getParcelableExtra("data");
//处理缩略图
}
}else{
//处理mOutPutFileUri中的完整图像
}

}
}
}

2. 在Android当中IntentIntegrator可不可以与其他调用摄像机的功能共存

拍照功能在应用开发中几乎已成为标配,例如用户通过拍照上传头像。实现拍照功能的方式有两种。第一种是使用相机API(即Camera类)来自定义拍照,第二种是使用Intent调用系统相机来拍照。其中最常见的方式是直接调用系统相机拍照来获取照片

3. Android调用手机相机拍照,保存图片会出现2张解决办法。

最近项目中使用系统相机拍照,保存图片,发现一些问题。

  读取图片旋转角度,然后再旋转回去。

   使用BitmapFactory.Options,能更准确的获取图片格式,
   判断地址末尾 .gif 有时候会不准确(不推荐)

  上传服务器,一般使用地址,但是用户手动删除图片后,地址是无效的。为了防止地址无效,可以对需要上传图片地址做保存,但又希望系统读取不到,可以对保存地址进行修改。

  读取图片地址api

  我们可以去系统相册查看两张图片,会发现两张图片的地址是不一样的,而且两张图片的大小也不同。
出现2张的原因是:
 (1)调用系统相机,拍照完成我们会生成一个保存地址,而这个地址是: /storage/android/data/包名/Picture/ ,这张是我们保存的拍照图片。
 (2)相同的一张图片在哪?这个地址是:/storage/Pictures/ ,这张图片是系统复制的App目录下Pictures中的图片。

  所以就会出现在系统相册两张图片,但两张图片大小不一致,地址不同。

  调用系统api,只能读取到一张,是系统复制的那张,也就是 /storage/Pictures/ 目录下的这张,但是/storage/android/data/包名/Picture/ 目录下的没有读取到。

  知道了问题,就有解决办法,可分为三种方法:
 (1)第一种方法:
     保存图片的时候,修改下地址(可参照标题 3 ,这样让系统无法识别出这张图片),结果就是,我读取不到,系统也别想读取不到,在系统相册里也就看不到这张图片。

 (2)第二种方法:
     因为api无法读取到,那我们就直接再读取/storage/android/data/包名/Picture/ 下的文件,把图片一块加入到同一个集合中用于展示,这样所有的图片都有了,但是系统相册中还是有两张图片,为解决这个问题。

 (3)第三种方法:( )
     在我们保存图片的时候,直接保存到 /storage/Pictures/ 这个目录下,也不用系统帮我们复制了,这样就只会出现一张,而且我们也能调用api直接读取到,两个问题全都解决了,完美!



(如果以上有错误或者有更优美的方式,感谢指出并改之,与君共勉)
这是我项目中出现的问题,希望能够帮助到你,Thanks,Bye!

4. android打开本地照相机需要什么权限

在Android系统中,为了使应用能够操作相机并进行拍照,开发者需要在应用的权限请求中包含android.permission.CAMERA这一权限。这一权限的作用是允许应用访问设备上的摄像头,进而实现拍照、摄像等功能。在AndroidManifest.xml文件中,开发者需要明确声明这一权限,确保应用在运行时能够顺利获取到相机的使用权。

值得注意的是,android.permission.CAMERA是一个危险权限,根据Android系统的权限管理机制,用户在安装应用时需要手动授权。这一机制有助于保护用户的隐私安全,避免未经允许的访问设备摄像头。因此,在申请这一权限时,开发者应当在应用中详细解释其必要性,以提高用户授权的可能性。

除了android.permission.CAMERA这一核心权限之外,为了实现更复杂的功能,开发者可能还需要申请其他相关的权限。例如,若需访问存储卡以保存拍摄的照片或视频,就需要申请android.permission.WRITE_EXTERNAL_STORAGE和android.permission.READ_EXTERNAL_STORAGE这两个权限。不过,根据最新的Android系统版本要求,仅申请android.permission.CAMERA就已经能够满足大部分拍照需求,除非应用确实需要访问存储卡。

最后,开发者需要确保在请求权限时遵循Android系统的规范和最佳实践。比如,在请求android.permission.CAMERA之前,应用应当先检查当前是否已经获得了该权限。若未获得,则应使用ActivityCompat.requestPermissions方法请求权限,并在用户授权后进行相应的操作。这样可以避免因权限问题导致应用崩溃或无法正常运行。

综上所述,若要使Android应用能够正常打开并操作本地照相机,开发者需要在应用中明确声明android.permission.CAMERA这一权限,并且在请求权限时遵循相关的规范。通过合理的权限管理和用户沟通,开发者可以更好地满足应用的功能需求,同时也保护了用户的隐私安全。

5. android 调用系统照相机,保存后回到前一个activity

修改相机源码编译,因为相机返回功能是点2次,保存并没有退出动作,这个不改源码或者在相机源码里面加Intent 是做不到这种效果的 。 我刚想了下,在广播或者Service里面加 OnKeyDown 方法 ,但是广播和service没有这方法,所以不能够靠监听到 返回键的键值 4 ,从而直接 Intent到 A activity的功能就无法实现 ,所以建议修改相机源码,即可实现 。 如果是纯应用, 抱歉,能想的都想了,实现不了。

热点内容
编译原理移植 发布:2025-01-05 12:49:16 浏览:318
android开屏 发布:2025-01-05 12:43:54 浏览:289
win7用户文件夹 发布:2025-01-05 12:42:30 浏览:621
java培训班南京 发布:2025-01-05 12:29:36 浏览:732
Idea自动编译是什么 发布:2025-01-05 12:28:02 浏览:527
考试笔试编程 发布:2025-01-05 12:15:45 浏览:157
变量配置是什么意思 发布:2025-01-05 12:15:42 浏览:280
行李箱装什么密码锁好 发布:2025-01-05 12:14:57 浏览:976
家用无线存储 发布:2025-01-05 12:14:47 浏览:620
学c还是c语言还 发布:2025-01-05 12:14:03 浏览:427