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

資産からファイルをロードする方法のコードは100回掲載されています。さらに、あなたはクラスにアクティビティ・コンテキストを提供することができます。そうすれば問題はありません。 – greenapps

+0

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

+0

'クラスがアクティビティではないため、getResorces()を使用できません。 'いいえ、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

私は自分の答えを編集しました。 –

関連する問題