Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中資源文件夾res/raw和assets的使用

Android中資源文件夾res/raw和assets的使用

編輯:關於Android編程

*res/raw和assets的相同點:

1.兩者目錄下的文件在打包後會原封不動的保存在apk包中,不會被編譯成二進制。


*res/raw和assets的不同點:
1.res/raw中的文件會被映射到R.java文件中,訪問的時候直接使用資源ID即R.id.filename;assets文件夾下的文件不會被映射到R.java中,訪問的時候需要AssetManager類。
2.res/raw不可以有目錄結構,而assets則可以有目錄結構,也就是assets目錄下可以再建立文件夾

 

*讀取文件資源:

1.讀取res/raw下的文件資源,通過以下方式獲取輸入流來進行寫操作
[java] 
InputStream is = getResources().openRawResource(R.id.filename); 
InputStream is = getResources().openRawResource(R.id.filename);
2.讀取assets下的文件資源,通過以下方式獲取輸入流來進行寫操作
[java] 
AssetManager am = null; 
am = getAssets(); 
InputStream is = am.open("filename"); 
AssetManager am = null; am = getAssets(); InputStream is = am.open("filename");
 

補充一下:在未知目錄下有哪些文件,該去和獲取這些文件的名稱並把文件拷貝到目標目錄中呢?(用於內置文件但不知道文件名稱,需要篩選出想要的文件然後拷貝到目標目錄中,推薦內置在assets文件夾中)
1.res/raw目錄:
通過反射的方式得到R.java裡面raw內部類裡面所有的資源ID的名稱,然後通過名稱獲取資源ID的值來讀取我們想要的文件。(這個方法我沒試過,有用過的同學麻煩發一段代碼看看)。
2.assets目錄:
getAssets().list("");來獲取assets目錄下所有文件夾和文件的名稱,再通過這些名稱再讀取我們想要的文件。


作者:caikezhan
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved