Android学习——怎么SDCard上的获取相册照片

这篇博客详细介绍了在Android中如何动态获取SDCard上相册的照片路径,避免硬编码目录,确保代码的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



private String getRealPathFromURI(Uri contentUri) {
		Cursor cursor = null;
		String result = contentUri.toString();
		String[] proj = {MediaStore.Images.Media.DATA};
		cursor = managedQuery(contentUri, proj, null, null, null);
		if(cursor == null) throw new NullPointerException("reader file field");
		if (cursor != null) {
			int column_index = cursor
					.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
			cursor.moveToFirst();
			// 最后根据索引值获取图片路径
			result = cursor.getString(column_index);
			 try  
	            {  
	                //4.0以上的版本会自动关闭 (4.0--14;; 4.0.3--15)  
	                if(Integer.parseInt(Build.VERSION.SDK) < 14)  
	                {  
	                    cursor.close();  
	                }  
	   
### 如何在 Android Studio 模拟器中设置和使用相册 #### 启动模拟器并打开 Device File Explorer 为了向 Android 虚拟设备 (AVD) 的图库添加图像,在 Android Studio 中启动目标 AVD 实例[^2]。 #### 浏览文件系统 通过菜单 `View -> Tool Windows -> Device File Explorer` 打开设备文件资源管理器。此工具允许浏览已连接设备上的文件结构,对于本操作而言,重点在于定位存储区域内的特定目录来放置媒体文件[^1]。 #### 寻找合适的图片保存位置 导航至 `/storage/emulated/0/Pictures` 或者 `/sdcard/Pictures` 文件夹作为上传照片的目标地点之一;另一个常用的位置是 `/storage/emulated/0/DCIM/Camera`,这里通常是相机拍摄的照片默认储存的地方,也将被系统的相册应用扫描以显示内容[^3]。 #### 上载图片到指定文件夹 选定了具体的目的地后,只需简单地右键点击该文件夹,并从上下文菜单中挑选 "Upload..." 来选取本地计算机上的一张或多张图片进行传输。完成这一过程即意味着这些新加入的影像已经被安置到了选定的虚拟环境内部。 #### 刷新媒体数据库使新增加的内容可见 由于安卓操作系统会缓存多媒体索引信息,因此即使已经把图片放进了相应的文件夹内,也可能不会马上出现在应用程序界面上。解决办法是在命令行输入如下指令强制刷新媒体库: ```bash adb shell media scan /storage/emulated/0/ ``` 这条命令将会触发一次完整的媒体扫描动作,从而确保任何最近变动过的项目都能及时反映出来。 #### 验证成果 最后一步就是确认一切正常运作——重新启动模拟器或者执行上述ADB命令之后,应该能够在图库类的应用程序里看到之前传入的新图片了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

积跬步DEV

如有帮助,那多谢赞助!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值