2017-11-25 77 views
-1

通過使用getImage(),我得到assets/images文件夾中文件的名稱。
但是我不知道創建一個位圖熱,我不能使用getResorces(),因爲這個類不是Activity從適配器中的字符串獲取圖像

如何創建一個位圖文件的名稱存儲在一個字符串中?

public class ListAdapter extends BaseAdapter { 
    ... 
    ... 
    .... 

    private Bitmap getImage(Node node){ 
     String path = node.getFirstChild().getFirstChild().getNextSibling().getNextSibling().getNextSibling().getTextContent(); 
    } 
} 
+2

代碼有圖像如何加載從資產文件已經發布一百倍。此外,您可以爲您的課程提供一個活動環境,這樣就沒有問題了。 – greenapps

+0

https://stackoverflow.com/a/8501428/115145 – CommonsWare

+0

'我不能使用getResorces(),因爲這個類不是一個Activity.'不,你不能通過'getResources()'檢索文件,因爲它在'assets'文件夾。 –

回答

0

你不能沒有Context調用getResources()方法。因此,在ListAdapter中獲取上下文的最佳選擇是創建一個將上下文作爲參數的構造函數。

public class ListAdapter extends BaseAdapter { 
    Context mContext; 
    ListAdapter(Context context){ 
    mContext = context; 
    } 
    //Your code... 
} 

如果你在資源文件夾

Bitmap getImage(Node node){ 
    String fileName = node.getFirstChild().getFirstChild().getNextSibling().getNextSibling().getNextSibling().getTextContent(); 
    try { 
     InputStream stream = mContext.getAssets().open(fileName); 
     Bitmap bitmap = BitmapFactory.decodeStream(stream); 
     return bitmap; 
    }catch(IOException e) { 
     //Handle this case 
    } 
return null; 
} 
+0

我編輯了我的答案。 –

相關問題