Android中把assets目录下所有图片转换成bitmap存入list集合

InputStream open(String fileName);//以顺序读取模式打开文件,默认模式为ACCESS_STREAMING

 InputStream open(String fileName, int accessMode);//以指定模式打开文件。读取模式有以下几种:
                                    //ACCESS_UNKNOWN : 未指定具体的读取模式
                                    //ACCESS_RANDOM : 随机读取
                                    //ACCESS_STREAMING : 顺序读取
                                    //ACCESS_BUFFER : 缓存读取
imageView = (ImageView) findViewById(R.id.iv);

        AssetManager manager = getResources().getAssets();

        ListString, Object>> catelist = new ArrayListString,Object>>();
        String[] list_image = null; //图片的文件名

        try {
        //之前没有写注释现在补上  Assetmanager.list(String path) 
//文件夹,这里bannerjpge 是一个文件夹 是 asstes的子目录  
//如果我们要直接获取 assets目录下的所有文件和文件夹怎么办? 
//我们可以 直接传""  也就是 manager.list(""); 空字符串
// 就可以获取 assets目录下的所有文件夹和文件的名字了。 
//所有文件夹和文件的名字。
            list_image = manager.list("bannerjpeg");


        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        for(int i  = 0;inull;


            try {
                String imagepath = "bannerjpeg/"+list_image[i]; //循环拼出每个图片的相对路径
                open = manager.open(imagepath); //得到输出流
                Bitmap bitmap = BitmapFactory.decodeStream(open); //得到每个图片

                Map<String, Object> map = new TreeMap<String, Object>(); //存储图片路径和转换成的 bitmap
                map.put(""+i, bitmap);

            catelist.add(map); //list集合
//              catelist.add(object)

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {

                if(open!=null) {

                    try {
                        open.close();

                    } catch (Exception e2) {

                        e2.printStackTrace();
                    }
                }
            }

        }

            bitmaps = new ArrayList();

            for(int i  = 0;i""+i);
                bitmaps.add(bitmap);
            }

            imageView.setImageBitmap(bitmaps.get(3));
    }

最后要注意: 如果我们不在 assets目录下创建一个子目录的话 assets目录下 会有隐藏文件 (其实我只是放了 4张图片 )如下:
Android中把assets目录下所有图片转换成bitmap存入list集合_第1张图片

你可能感兴趣的:(Android)