2016-07-30 80 views
1

我想打開一個位於我的android studio項目@ res/drawable/conan_obrian.png中的文件。但是,拋出了java.io.FileNotFoundException。我嘗試過不同的路徑名組合,但沒有結果。Android在運行時查找資源文件的位置?

這個片段被拋出異常:如果你有一個assets/drawable文件夾

InputStream is; 
    byte[] buffer = new byte[0]; 
    try { 
     final AssetManager assetMgr = context.getResources().getAssets(); 
     is = assetMgr.open("drawable/conan_obrian.png"); 
     buffer = new byte[is.available()]; 
     is.read(buffer); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    serverAPI.register(userName, Base64.encodeToString(buffer,Base64.DEFAULT).trim(), myCrypto.getPublicKeyString()); 

My project's file tree structure

+0

您的資產文件夾實際上是否包含可繪製的文件夾? –

+0

AS> 2.0中是否有默認資產文件夾? - 找不到它。 – XYseven

+0

不是我所知道的。不過,您可以使用File> New菜單創建一個Assets文件夾。否則,我認爲我的答案是你正在尋找的。目前還不清楚爲什麼你需要一個字節數組 –

回答

3

您的代碼將是正確的,但你要加載的資源,所以這將是R.drawable.conan_obrian。例如,您可以在ImageView上使用該ID到setResourceDrawable

或者你可以使用該ID的可繪製對象與res/目錄下

Drawable d = getResources().getDrawable(R.drawable.conan_obrian) 

任何被加載到R.java文件整數一長串。

+0

中的問題。我沒有使用.png文件作爲佈局資源。所以,我認爲我不能使用對象Drawable對象的引用,例如R.drawable.conan_obrian。 – XYseven

+0

它不在佈局文件夾中......我沒有說'R.layout'嗎? –