1. 程式人生 > >Android中把assets目錄下所有圖片轉換成bitmap存入list集合

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();

        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張圖片 )如下:
這裡寫圖片描述