assets下经常可以放一些比较大的资源,对于这些资源我们如何访问。

步骤

1.获取AssetManager。

AssetManager am = getResources().getAssets();

2.利用AssetManager的open(String filePath)方法打开对应的输入流。

InputStream is = am.open(assetsFileName);

读取图片文件保存到SD卡示例代码

public  boolean saveToSDCard(String localFilePath, String fileName,
            Bitmap bitmap) {
        String extraPath = Environment.getExternalStorageDirectory().toString();
        // 使用绝对路径
        extraPath = extraPath + "/" + "PaperCut"+"/"+localFilePath;
        // String path = null;
        File file = new File(extraPath);
        if (!file.exists())
            file.mkdirs();
        try {
            filePath = file.getPath() + "/" + fileName + ".png";
            File newFile = new File(filePath);
            if (newFile.exists()) {
                Toast.makeText(getApplicationContext(), R.string.finishTips1, // 已经保存过啦亲
                        Toast.LENGTH_SHORT).show();
                return true;
            }else {
                FileOutputStream fileOutputStream = new FileOutputStream(filePath);
                bitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);
                // 另一种格式的结尾
                // bitmap.compress(CompressFormat.PNG, 50, fileOutputStream);
                fileOutputStream.flush();
                fileOutputStream.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
            // System.out.println(e.toString());
            return false;
        }
        return true;
    }
    private Bitmap getImageFromAssetsFile(int  position)
      {
          //Bitmap image = null;
          Bitmap image = null;
          String assetsFileName = null;
          assetsFileName = "album/"+is.imageMyChooseName.get(position)+"/1.png";
          //AssetManager从assets文件夹中获取资源
          AssetManager am = getResources().getAssets();
          try
          {
              InputStream is = am.open(assetsFileName);
              //从InputStream解码生成image
              image = BitmapFactory.decodeStream(is);
              is.close();
          }
          catch (IOException e)
          {
              e.printStackTrace();
          }
          return image;
      }
      //调用
          saveToSDCard("album","filePath"),getImageFromAssetsFile(position));

Android 访问assets下的文件的更多相关文章

  1. Android项目使用Assets下的文件

    Android项目在编译时,Assets下文件不被编译. Assets下的文件除了 html文件可以直接在项目中使用外,其他的文件都需要做处理滴. 在项目中使用方法:        使用流读取.   ...

  2. Android 读取Assets下的资源文件

    做Android开发近半年了,东西越学越多,硬盘容量越来越小.很多东西找起来也不方便,为此,我打算从今天起把工作中学到的东西整理起来,写成日记.也希望与广大网友分享我的经验.一同进步.今天主要介绍文件 ...

  3. Android -- 拷贝assets下的资源文件到SD卡中(可以超过1M)

    很多手机游戏,在安装APK之后都得需要下载相应的资源包,然后才能进入游戏. 有这样一个需求:就是游戏中需要的资源包打在APK内,随apk一起进行安装到手机中. 这样就不需要,在安装APK之后,去下载资 ...

  4. assets下的文件复制到SD卡

    由于assets和res下的文件都只可以读不可以写,那么在程序初始化后,将后期需要使用并且需要修改的文件复制到SD卡.下面代码提供一个工具类,将assets下的任意资源复制到SD卡下. assets下 ...

  5. Cocos2d-x在win32,android和IOS下的文件读写问题

    最近在学习和使用Cocos2d-x框架,虽然说的是跨平台,但是在用VS进行开发,然后移植到android或IOS下,也可能会出现各种问题,需要做细微的调整. 例如我在做文件读写操作的时候,很可能在wi ...

  6. VC遍历访问目录下的文件

    访问目录文件夹下的文件是经常需要的操作,C/C++和win32接口都没有提供直接调用的函数.在这里总结了几个经常用到的函数,通过MFC的CFileFind函数递归遍历实现,包括以下几个功能函数: 查找 ...

  7. android 读取根目录下的文件或文件夹

    @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC ...

  8. android assets下rar文件解压到sd卡

    参考的 http://hzy3774.iteye.com/blog/1704419   不过只能解压zip文件  最多也就能解压1M多把 ,我1.5M的可以,4M的不行 还有...之前傻逼的把raw和 ...

  9. android 修改framework下资源文件后如何编译

    在framework/base/core/res/res 下添加资源文件后需要先编译资源 然后编译framework 才可正常引用 进入项目根目录 cd frameworks/base/core/re ...

随机推荐

  1. [SDOI2008]Cave 洞穴勘测

    题目描述 辉辉热衷于洞穴勘测. 某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴.假 ...

  2. [Codeforces]813F Bipartite Checking

    往期题目补档.既然被选为了经典题就拿来写一写. Description 给定一张含有n个点的无向图,一开始图中没有任何边.依次给出q次操作,每次操作给出两个点“x y”,若x和y之间没有边相连,则连上 ...

  3. 【bzoj4571&&SCOI2016美味】

    4571: [Scoi2016]美味 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 656  Solved: 350[Submit][Status][ ...

  4. NOIWC颓废记

    NOIWC大概就干了3件事情:吃.睡.浪. 吃: 目测绍兴一中的饭比二中的好吃多了,每天都有挺多的肉菜,还有一些甜品,而且是自助,不错的,但是一个不好的是排队时间太长了,于是我这么珍惜时间急着回宿舍的 ...

  5. const的一些用法和理解

    首先先说一下const常量的用处,我们知道宏定义#define是没有数据类型的,编译器在编译的时候,不会对宏常量进行类型检查,只进行简单的字符串替换,字符串替换时极易产生意想不到的错误,所以这个时候, ...

  6. PHP+JQuery+Ajax初始化网站基本信息(附源码)--PHP

    一.思路 为了保存用户会员信息的时间长一些,不局限于session的关闭.我们需要将用户信息保存在数据库中,前台每次登录都需要进行校验,来查看用看用户会员信息是否过期,如果没有过期,取出用户会员信息存 ...

  7. jsp根据参数默认选中radio

    <% int vol = (Integer)request.getAttribute("cardtype") ; %> <input type="rad ...

  8. SignalR Progress

    Server public class ServerHub : Hub { public async Task<string> ALongTimeTask() { var p = new ...

  9. 跟着大佬重新入门DP

    数列两段的最大字段和 POJ2479 Maximum sum Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 41231 Acce ...

  10. R语言do.call 函数用法详解

    虽然R语言有类型很丰富的数据结构,但是很多时候数据结构比较复杂,那么基本就会用到list这种结构的数据类型.但是list对象很难以文本的形式导出,因此需要一个函数能快速将复杂的list结构扁平化成da ...