以前的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

Android中访问sdcard路径的几种方式_第1张图片

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

Android中访问sdcard路径的几种方式_第2张图片

布局文件上方为一个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。







更多相关文章

  1. Android 四种加载方式 standard singleTop singleTask singleIns
  2. Android Intent Filter应用方式讲解
  3. androidのPULL方式解析XML
  4. Android中关于Volley的使用(一)加载图片
  5. Android 图片特效如何实现及总结

随机推荐

  1. 泛型的概述和具体使用
  2. 分享一个磁盘文件查看系统
  3. 什么是MVVM架构和数据绑定?
  4. 实现内容精准化搜索和用户精准化推送的实
  5. 树莓派(Raspberry Pi,RPi)的详细介绍
  6. 分享一个jQuery效果实例代码
  7. 编写高性能 .NET的实例教程
  8. IdentityServer4 SigningCredential(RSA
  9. C#中多线程之Thread类详解
  10. 在iis上运行的服务器端程序,运行一段时间