Android中访问sdcard路径的几种方式
以前的Android(4.1之前的版本)中,SDcard路径通过“/sdcard”或者“/mnt/sdcard”来表示,而在JellyBean(安卓4.1)系统中修改为了" /storage/sdcard0",还会有多个SDcard的情况。目前为了保持和之前代码的兼容,SDcard路径做了Link映射。为了使代码更加健壮并能兼容以后的Android版本和新设备,安卓4,1后sdcard中会有系统自动生成的保存特定内容的的文件目录,从而可以使用一些特定函数来获取对应目录。
今天我们就简单介绍几种访问SDcard路径的几种方式:
本次演示获取的图片路径如下:
完整路径为“/storage/emulated/0/Download/tianxingjiuge.jpg”


下面我们通过将本机“/storage/emulated/0/Download/tianxingjiuge.jpg”图片加载到APP中ImageView的演示来介绍这几种加载方式:

布局文件上方为一个Button,下方为imagView,不做过多阐述了,java实现代码如下:
public class MainActivity extends AppCompatActivity {
ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv= (ImageView) findViewById(R.id.iv);
}
public void load(View view){
//第一种:直接引用全部的目录(4.1之前使用,之后不建议这样用)
// Bitmap bm = BitmapFactory.decodeFile("/storage/emulated/0/Download/tianxingjiuge.jpg");
//第二种:/storage/emulated/0这一段的路径可以用Environment.getExternalStorageDirectory()
// Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() +
// "/Download/tianxingjiuge.jpg");
//第三种:使用Environment.getExternalStoragePublicDirectory(String type)函数调用不同类型的文件目录
Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStoragePublicDirectory
(Environment.DIRECTORY_DOWNLOADS) + "/tianxingjiuge.jpg");
iv.setImageBitmap(bm);
}
}
第三种方式中使用Environment.getExternalStoragePublicDirectory(String type)函数,该函数可以返回特定类型的目录,目前支持如下类型:
• DIRECTORY_ALARMS //警报铃声
• DIRECTORY_DCIM //相机拍摄的图片和视频
• DIRECTORY_DOWNLOADS //下载文件保存
• DIRECTORY_MOVIES //电影的保存,比如通过google play下载的电影
• DIRECTORY_MUSIC //音乐保存
• DIRECTORY_NOTIFICATIONS //通知音乐保存
• DIRECTORY_PICTURES //下载的图片
• DIRECTORY_PODCASTS //用于保存podcast(博客)的音频文件
• DIRECTORY_RINGTONES //保存铃声
本次图片保存在Download目录下,所以使用Environment.DIRECTORY_DOWNLOADS。
Android中访问sdcard路径的几种方式的更多相关文章
- Struts2中访问web元素的四种方式
Struts2中访问web元素的四种方式如下: 通过ActionContext来访问Map类型的request.session.application对象. 通过实现RequestAware.Sess ...
- 详解实现Android中实现View滑动的几种方式
注: 本文提到的所有三种滑动方式的完整demo:ScrollDemo 1. 关于View我们需要知道的 (1)什么是View? Android中的View类是所有UI控件的基类(Base class) ...
- java中获取文件路径的几种方式
http://xyzroundo.iteye.com/blog/1116159关于绝对路径和相对路径: 绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz es ...
- python中获取文件路径的几种方式
# 如果执行文件为E:\aa\bb\aa.py 1.获取当前路径 current_path11 = os.path.abspath(__file__) current_path12 = os.path ...
- Android中获取文件路径的方法总结及对照
最近在写文件存贮,Android中获取文件路径的方法比较多,所以自己也很混乱.找了好几篇博客,发现了以下的路径归纳,记录一下,以备不时之需 Environment.getDataDirectory() ...
- 怎样在Android开发中FPS游戏实现的两种方式比较
怎样在Android开发中FPS游戏实现的两种方式比较 如何用Android平台开发FPS游戏,其实现过程有哪些方法,这些方法又有哪些不同的地方呢?首先让我们先了解下什么是FPS 英文名:FPS (F ...
- [Android] Android ViewPager 中加载 Fragment的两种方式 方式(二)
接上文: https://www.cnblogs.com/wukong1688/p/10693338.html Android ViewPager 中加载 Fragmenet的两种方式 方式(一) 二 ...
- [Android] Android ViewPager 中加载 Fragment的两种方式 方式(一)
Android ViewPager 中加载 Fragmenet的两种方式 一.当fragment里面的内容较少时,直接 使用fragment xml布局文件填充 文件总数 布局文件:view_one. ...
- Servlet访问路径的两种方式、Servlet生命周期特点、计算服务启动后的访问次数、Get请求、Post请求
Servlet访问路径的两种方式: 1:注解 即在Servlet里写一个@WebServlet @WebServlet("/myServlet") 2:配置web.xml < ...
随机推荐
- 《Web 前端面试指南》1、JavaScript 闭包深入浅出
闭包是什么? 闭包是内部函数可以访问外部函数的变量.它可以访问三个作用域:首先可以访问自己的作用域(也就是定义在大括号内的变量),它也能访问外部函数的变量,和它能访问全局变量. 内部函数不仅可以访问外 ...
- 一起学微软Power BI系列-使用技巧(5)自定义PowerBI时间日期表
1.日期函数表作用 经常使用Excel或者PowerBI,Power Pivot做报表,时间日期是一个重要的纬度,加上做一些钻取,时间日期函数表不可避免.所以今天就给大家分享一个自定义的做日期表的方法 ...
- 高性能IO模型浅析
高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking ...
- 学习ASP.NET Core, 怎能不了解请求处理管道[5]: 中间件注册可以除了可以使用Startup之外,还可以选择StartupFilter
中间件的注册除了可以借助Startup对象(DelegateStartup或者ConventionBasedStartup)来完成之外,也可以利用另一个叫做StartupFilter的对象来实现.所谓 ...
- WPF 普通属性变化通知
问题描述:使用ObservableCollection<OrderItem> source 给Datagrid.ItemsSource赋值,在后台更新source集合后,前台Datagri ...
- 简单分析JavaScript中的面向对象
初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...
- SAP CRM 显示消息/在消息中进行导航
向用户展示消息,在任何软件中都是十分重要的. 在SAP CRM WEB UI中展示消息,不是一项很难的任务,只需要创建消息并在之后调用方法来显示它 消息类和消息号: 我在SE91中创建了如下的消息类和 ...
- iOS:以前笔记,未整理版。太多了,先放着吧。。。。。。。
1. -(void)timetick { _d = 0; NSTimer *newtime =[NSTimer scheduledTimerWithTimeInterval:1 target:self ...
- Oracle 10g安装教程
首先下载安装文件,打开后文件结构如图所示: 安装之前请关闭Windows防火墙并断开网络. xp系统下直接双击运行(本经验以XP系统安装为例进行讲述). 如果是在win7上安装,如图:在setup文件 ...
- 用 eric6 与 PyQt5 实现python的极速GUI编程(系列04)---- PyQt5自带教程:地址簿(address book)
[引子] 在PyQt5自带教程中,地址簿(address book)程序没有完全实现界面与业务逻辑分离. 本文我打算用eric6+PyQt5对其进行改写,以实现界面与逻辑完全分离. [概览] 1.界面 ...