android中怎么读取系统相册

android中怎么读取系统相册,第1张

Intent intent= new Intent(IntentACTION_GET_CONTENT);

intentsetDataAndType(MediaStoreImagesMediaEXTERNAL_CONTENT_URI, "image/");

startActivityForResult(intent, REQUEST_CODE_SELECT_IMAGE);

表示调用相册选择

如果你要选择文件:

Intent intent= new Intent(IntentACTION_GET_CONTENT);

intentsetDataAndType(MediaStoreImagesMediaEXTERNAL_CONTENT_URI, "file/");

startActivityForResult(intent, REQUEST_CODE_SELECT_IMAGE);

一般安卓手机的相机功能都会有固定的存放路径,这个位置默认为:/sdcard/DCIM/100Andro或者/sdcard/DCIM/Camera,这里的sdcard是指手机中的SD卡,在电脑中显示的为可移动磁盘。根据不同品牌安卓手机的后期开发,文件夹名称可能不太一样,但一般是在DCIM目录文件夹里边,当然也会有特别,例如在酷派手机中手机拍照的是存放在根目录中的Photo中。

首先,打开您手机上的相机,点击设置按钮,里面会有一个选择存储位置,

一般默认是存储在手机内存,可以进行修改,存到SD卡中。

通过数据线连接到电脑后,一般是一个叫DCIM。

takePictureIntentresolveActivity(getPackageManager()) != null

在官方文档中有描述:startActivityForResult()方法受到调用resolveActivity()的条件的保护,该方法返回可处理该意图的第一个活动组件,执行此检查很重要,因为如果您使用没有应用程序可以处理的意图调用startActivityForResult(),则您的应用程序将崩溃。所以只要结果不为空,就可以安全的使用意图,大概意思是检测手机中有没有相机。

另外一种检测相机的方法是

required=true 表示要安装该应用,手机必须有摄像头该硬件。要不然不允许安装

鸿洋的博客关于android70 以及 40 拍照封装的处理(点击跳转)

类似介绍比较好的文章推荐-Android 调用系统相机拍照攻略(已适配Android N)

1拍照 (对于70以上的版本,不在允许直接访问uri)

`

若不指定输出路径intentputExtra(MediaStoreEXTRA_OUTPUT, getTempUri(srcActivity)); 在onActivityResult()中,通过

`

可以拿到uri,但获得的是被压缩过的。若指定intentputExtra(MediaStoreEXTRA_OUTPUT, uri);输出路径,则此处的intent为null,但可以使用我们存的uri读取照片,此时的照片没有被压缩。

2从相册中读取照片, 方法:

`

`

即使设置 intentputExtra(MediaStoreEXTRA_OUTPUT, getTempUri(srcActivity));输出路径,仍然不能从此路径中读取,只能在onActivityForResult()中通过eventuri = intentgetData();方式获得uri。

此种现象也好理解,拍照时产生新的,自然可根据设置的uri进行保存,而读取相册时,已经在目录中不能转移到自己设定的uri中。

Androidmanifestxml中

`

在 res/xml/provider_pathsxml

`

<xml version="10" encoding="utf-8">

<paths>

<external-path name="JDTobs" path=""/>

<files-path name="name" path="path" />

<cache-path name="name" path="path" /> <external-path name="name" path="path" />

<external-files-path name="name" path="path" />

<external-cache-path name="name" path="path" /> </paths> `

读取uri

在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中怎么读取系统相册全部的内容,包括:android中怎么读取系统相册、如何获得android手机拍照后照片的存放目录、Android 拍照获取缩略图以及完整图片(适配androidN)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://www.54852.com/web/9708644.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存