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

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

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

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

   使用BitmapFactoryOptions,能更准确的获取格式,

   判断地址末尾 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!

在Android Studio中,可以使用Intent调用系统相册。以下是具体步骤:

1 在你的Android Studio项目中创建一个Button或ImageView,用于触发打开相册的事件。

2 在Button或ImageView的OnClick事件中添加以下代码:

Intent intent = new Intent(IntentACTION_PICK, androidproviderMediaStoreImagesMediaEXTERNAL_CONTENT_URI);

startActivityForResult(intent, PICK_IMAGE_REQUEST);

其中,PICK_IMAGE_REQUEST是一个整数常量,用于在Activity返回结果时进行识别。

3 在Activity中添加以下代码,以处理从相册返回的结果:

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

superonActivityResult(requestCode, resultCode, data);

if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && datagetData() != null) {

Uri uri = datagetData();

// 使用uri加载

}

}

在这个方法中,我们检查requestCode是否等于PICK_IMAGE_REQUEST,resultCode是否等于RESULT_OK,以及data和datagetData()是否不为null。如果这些条件都满足,我们就可以使用datagetData()方法获取从相册中选择的的Uri,并使用这个Uri加载。

注意:在使用打开相册的Intent时,需要在AndroidManifestxml文件中添加以下权限:

<uses-permission android:name="androidpermissionREAD_EXTERNAL_STORAGE"/>

这个权限用于读取存储在设备上的。

以上就是关于Android调用手机相机拍照,保存图片会出现2张解决办法。全部的内容,包括:Android调用手机相机拍照,保存图片会出现2张解决办法。、android studio如何调用系统相册、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9518941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存