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

    xiaoxiao2021-04-12  31

    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(); List<Map<String, Object>> catelist = new ArrayList<Map<String,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;i<list_image.length;i++) { InputStream open = null; 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<Bitmap>(); for(int i = 0;i<catelist.size();i++) { Bitmap bitmap = (Bitmap) catelist.get(i).get(""+i); bitmaps.add(bitmap); } imageView.setImageBitmap(bitmaps.get(3)); }

    最后要注意: 如果我们不在 assets目录下创建一个子目录的话 assets目录下 会有隐藏文件 (其实我只是放了 4张图片 )如下:

    转载请注明原文地址: https://ju.6miu.com/read-668111.html

    最新回复(0)