亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android讀取assets目錄下的所有圖片并顯示的方法

2020-04-11 11:42:04
字體:
來源:轉載
供稿:網友

本文實例講述了Android讀取assets目錄下的所有圖片并顯示的方法。分享給大家供大家參考。具體方法分析如下:

在assets文件夾里面的文件都是保持原始的文件格式,需要用AssetManager以字節流的形式讀取文件。
1. 先在Activity里面調用getAssets() 來獲取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode) 方法則指定讀取的文件以及訪問模式就能得到輸入流InputStream。
3. 然后就是用已經open file 的inputStream讀取文件,讀取完成后記得inputStream.close() 。
4.調用AssetManager.close() 關閉AssetManager。
需要注意的是,來自Resources和Assets 中的文件只可以讀取而不能進行寫的操作。
下面看一下在Activity中使用的示例代碼:

復制代碼 代碼如下:
List<Map<String, Object>> cateList = new ArrayList<Map<String, Object>>(); 
String[] list_image = null; 
try { 
//得到assets/processedimages/目錄下的所有文件的文件名,以便后面打開操作時使用 
    list_image = context.getAssets().list("processedimages"); 
} catch (IOException e1) { 
    // TODO Auto-generated catch block 
    e1.printStackTrace(); 

for(int i=0;i<list_image.length;++i) 

    InputStream open = null; 
    try { 
  String temp = "processedimages/"+list_image[i]; 
  open = context.getAssets().open(temp); 
  Bitmap bitmap = BitmapFactory.decodeStream(open); 
  Map<String, Object> map = new HashMap<String, Object>(); 
  map.put("name", list_image[i]); 
  map.put("iv", bitmap); 
  map.put("bg", R.drawable.phone_vip_yes); 
  map.put("cate_id",i); 
  cateList.add(map); 
  // Assign the bitmap to an ImageView in this layout 
    } catch (IOException e) { 
  e.printStackTrace(); 
      } finally { 
  if (open != null) { 
    try { 
      open.close(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 
  } 
       } 
}

這樣所有的map中的關鍵字“iv"處理論上就保存了我們讀取的bitmap,可以結果并非如此,大家應該注意到了在”bg“關鍵字處我們也保存了一個圖片,只不過它是通過R.drawable.方式獲取的,實驗證明這種方式是可以成功讀取并顯示的。為什么從assets中讀取的bitmap不能顯示呢?

解決辦法是:

實現 ViewBinder接口,對兩種的資源id和bitmap 情況進行說明:

復制代碼 代碼如下:
adapter.setViewBinder(new ViewBinder() { 
             
    @Override 
    public boolean setViewValue( 
     View view, 
     Object data, 
     String textRepresentation) { 
 // TODO Auto-generated method stub 
  if((view instanceof ImageView) && (data instanceof Bitmap)) {   
  ImageView imageView = (ImageView) view;   
  Bitmap bmp = (Bitmap) data;   
  imageView.setImageBitmap(bmp);   
  return true;   
     }   
 return false; 
    } 
});

這樣就可以了。
還有一種情況是,我們在非Activity類中讀取assets文件下的內容,這個時候就得把調用者(Activity類)的context傳遞過去,然后在這個非Activity類中使用context.getAssets()方式調用就行了。

舉個簡單例子:
我們有一個HomeActivity,然后我們它里面調用GetData.initdata(HomeActivity.this).
在GetData類的initdata方法肯定是這樣定義的:

復制代碼 代碼如下:
public void initdata(Context context)
{
//other codes...
      String[] list_image = null;
     try {
     //得到assets/processedimages/目錄下的所有文件的文件名,以便后面打開操作時使用
                list_image = context.getAssets().list("processedimages");//attention this line
          } catch (IOException e1)
            {
                e1.printStackTrace();
            }
      //other codes.....
}

因為getAssets方法是Context下的方法,在非Activity類中是不能直接使用的。

希望本文所述對大家的Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美极品第一页| 亚洲综合中文字幕68页| 欧美又大粗又爽又黄大片视频| 国产精品日日摸夜夜添夜夜av| 国产精品流白浆视频| 久久精品国产亚洲| 57pao国产成人免费| 一区二区三区动漫| 欧美成人亚洲成人日韩成人| 亚洲自拍偷拍网址| 欧美一区二区三区精品电影| 亚洲欧美激情另类校园| 日韩性生活视频| 97超碰蝌蚪网人人做人人爽| 久久成人综合视频| 动漫精品一区二区| 亚洲tv在线观看| 亚洲xxxx3d| 国产男人精品视频| 国产欧美日韩免费| 一区二区在线视频| 久久亚洲国产精品成人av秋霞| 一区二区欧美亚洲| 欧美激情日韩图片| 亚洲性生活视频| 美女撒尿一区二区三区| 亚洲精品电影在线| 亚洲一区二区在线| 91av视频导航| 国产不卡精品视男人的天堂| 日韩美女免费线视频| 亚洲成人激情视频| 中文字幕精品—区二区| 一区二区在线视频播放| 日韩欧美高清在线视频| 国产欧美一区二区三区久久人妖| 日韩毛片在线看| 亚洲激情视频在线| 欧美影院久久久| 日韩在线观看免费高清完整版| 91精品国产高清久久久久久91| 亚洲性av网站| 在线亚洲国产精品网| 亚洲男人天堂网站| 日韩精品有码在线观看| 亚洲天堂免费在线| 国产精品久久久久7777婷婷| 在线视频免费一区二区| 日韩在线视频免费观看高清中文| 欧美日韩国产第一页| 欧美整片在线观看| 国产激情999| 91精品视频在线播放| 亚洲欧美激情精品一区二区| 久久91超碰青草是什么| 日韩中文字幕欧美| 欧美日韩精品中文字幕| 国产日产久久高清欧美一区| 亚洲欧美日韩在线高清直播| 国产免费一区二区三区在线观看| 久久亚洲国产精品| 日韩中文字幕视频在线观看| 91国偷自产一区二区三区的观看方式| 久久久精品久久久| 久久国产精品网站| 日韩综合中文字幕| 精品国产一区二区三区久久狼5月| 日韩高清欧美高清| 国产精品美女在线观看| 一区二区av在线| 久久久噜噜噜久噜久久| 在线看国产精品| 国产精品入口免费视| 亚洲久久久久久久久久| 国产剧情久久久久久| 欧美在线视频一区| 久久国产精品网站| 性色av一区二区咪爱| 欧美黑人性视频| 欧美精品xxx| 亚洲qvod图片区电影| 51久久精品夜色国产麻豆| 91国内在线视频| 久久成人精品一区二区三区| 一区二区在线视频| 亚洲另类图片色| 一本色道久久88综合亚洲精品ⅰ| 欧美日韩在线第一页| 国产美女91呻吟求| 久久精品国产91精品亚洲| 91免费在线视频| 茄子视频成人在线| 亚洲欧美在线免费| 国产69久久精品成人看| 国产不卡一区二区在线播放| 日韩欧美主播在线| 日韩免费不卡av| 国产精品欧美日韩| 久久久电影免费观看完整版| 中文字幕久久久av一区| 国产精品成人国产乱一区| 久久久久久久久久av| 国产精品高清网站| 欧洲美女7788成人免费视频| 国产精品美女主播在线观看纯欲| 91九色国产社区在线观看| 日韩电影中文字幕在线观看| 日韩av在线网址| 久久香蕉精品香蕉| 国产成人精品一区二区三区| 日韩乱码在线视频| 久久久在线视频| 亚洲成人教育av| 国内精品久久久久久影视8| 久久福利视频导航| 爽爽爽爽爽爽爽成人免费观看| 亚洲一区二区在线| 91亚洲va在线va天堂va国| 在线视频精品一| 中文字幕亚洲一区二区三区| 欧美最猛性xxxxx免费| 国产精品视频久久| 欧美高清在线视频观看不卡| 久久久久中文字幕| 美女久久久久久久| 亚洲色图欧美制服丝袜另类第一页| 欧洲成人免费aa| 91成人天堂久久成人| 日日狠狠久久偷偷四色综合免费| 国产精品日韩欧美大师| 欧美日韩在线免费观看| 97超级碰在线看视频免费在线看| 中文字幕av一区| 亚洲区免费影片| 欧美极品少妇xxxxⅹ喷水| 中文字幕欧美视频在线| www.日韩视频| 欧美日韩精品中文字幕| 91禁国产网站| 自拍偷拍免费精品| 欧美视频在线观看免费网址| 欧美理论电影在线播放| 91在线观看免费高清完整版在线观看| 国产区精品视频| 国产精品视频在线观看| 国产精品久久电影观看| 精品亚洲国产视频| 成人网欧美在线视频| 色哟哟入口国产精品| 一本色道久久88亚洲综合88| 欧美精品久久久久久久久| 亚洲国产成人精品久久久国产成人一区| 国产精品亚洲自拍| 亚洲欧美日韩一区在线| 最近中文字幕mv在线一区二区三区四区| 亚洲精品wwwww| 国语自产精品视频在线看抢先版图片| 97香蕉超级碰碰久久免费软件| 伊人青青综合网站| 亚洲精品中文字| 国产精品第一第二| 久久成人在线视频| 亚洲高清av在线| 一本一本久久a久久精品综合小说|