以前的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路径,Android中访问sdcard路径的几种方式相关推荐

  1. Android中访问sdcard路径的几种方式

    以前的Android(4.1之前的版本)中,SDcard路径通过"/sdcard"或者"/mnt/sdcard"来表示,而在JellyBean(安卓4.1)系统 ...

  2. Android中获取屏幕信息的几种方式

    Android中获取屏幕信息的几种方式 方案一 方案二 方案三 Note:以下方案中的this均指Activity. 方案一 WindowManager wm = (WindowManager) th ...

  3. html中获取modelandview中的json数据_从Bitmap中获取YUV数据的两种方式

    从Bitmap中我们能获取到的是RGB颜色分量,当需要获取YUV数据的时候,则需要先提取R,G,B分量的值,然后将RGB转化为YUV(根据具体的YUV的排列格式做相应的Y,U,V分量的排列) 所以这篇 ...

  4. .net session 有效时间_Python中requests模拟登录的三种方式(携带cookie/session进行请求网站)...

    这篇文章主要介绍了python中requests模拟登录的三种方式(携带cookie/session进行请求网站),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋 ...

  5. Pycharm中运行Python代码的几种方式

    Pycharm中运行Python代码的几种方式 在pycharm中的Python代码运行会出现各种奇葩的问题,比如,密码输入时不显示或没有提示,给我们带来一些麻烦,下面介绍几种代码运行的几种方式: 一 ...

  6. python读取图像数据流_浅谈TensorFlow中读取图像数据的三种方式

    本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片 ...

  7. 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。

    [判断题]一行可以写多条预处理命令 [判断题]如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名一致. [判断题]Protected类型的实例变量只能在本类中使用,其他类中不可 ...

  8. 面试中sql调优的几种方式_面试方式

    面试中sql调优的几种方式 The first question I ask someone in an interview for a cybersecurity position is, &quo ...

  9. JavaScript——关于JavaScript、在HTML中嵌入JS代码的三种方式、变量

    文章目录 JavaScript 01 关于JavaScript 1.1 JS的发展历史 1.2 JS的特性 1.3 JS的组成 1.4 JSP和JS的区别 02 在HTML中嵌入JS代码的三种方式 2 ...

  10. 把一个数组的值存入二叉树中,然后利用前序、中序、后序3种方式进行遍历(完整代码以及运行结果)(Java)

    把一个数组的值存入二叉树中,然后利用前序.中序.后序3种方式进行遍历(完整代码以及运行结果) 在最近的面试过程中,听说有小伙伴被面试官要求创建二叉树,然后对该二叉树进行遍历,感觉这一直以来都是一个大家 ...

最新文章

  1. mininet报错解决:Exception: Could not find a default OpenFlow controller和Cannot find required executable
  2. 决策树剪枝的方法与必要性
  3. 计算机网络系统中每台计算机的地位是什么,东北师范计算机应用基础15秋在线作业1满分答案...
  4. 【算法】anchor free 和 anchor based 目标检测模型
  5. Uncaught SyntaxError: Invalid shorthand property initializer
  6. insertion-sort-list——链表、插入排序、链表插入
  7. SpringBoot2.1.5 (9)--- GET 请求
  8. SpringMVC的响应JSON数据和过滤静态资源
  9. kylin cube 增量和全量
  10. 「力扣」509. 斐波那契数【动态规划】详解!
  11. linux shell ps kill 某个名字的所有进程
  12. centos tomcat
  13. 计算机软件绘制思维导图步奏,常见的思维导图有哪几种画法
  14. 你知道吗?我喜欢你六年了——微博Redis定制化之路
  15. Linux安装iptables防火墙
  16. 异步电路中时钟同步的方法
  17. 【Unity3D自学记录】Unity3D之KeyCode键值
  18. 40个非常有创意的网页设计作品欣赏
  19. 编译低版本的binutils-2.16.1错误:ld.texinfo:1592: @itemx must follow @item
  20. 求1!+2!+...+10!的值

热门文章

  1. Ubuntu Server 18.04配置无线Wifi网卡
  2. 5G 技术特点与应用
  3. 阿里云服务器购买配置、环境部署、搭建网站教程(转载)
  4. mac更新系统版本后的安装包路径
  5. FTL介绍 -- FTL映射
  6. 计算机时间小于会计期间错误,会计期间手工记账和电脑记账不一样问题
  7. 【coq】函数语言设计 笔记 01 - basics
  8. Python实现自动群发自定义QQ消息
  9. Servlet入门学习(二)
  10. TRC病毒-宿主融合抑制剂研究丨4-氨基-1-叔丁基说明书