2017-11-25 261 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

我编辑了我的答案。 –