首页 > 解决方案 > 使用资产文件夹中的图像而不是 ListFragment 中的可绘制文件夹

问题描述

我很难弄清楚如何以与可绘制文件夹中相同的方式使用资产文件夹中的图像。我搜索并发现我可以使用 getAssets() 函数,但我不知道如何使用它,我在片段中有服装列表视图。我不想使用可绘制文件夹,因为我的资产包含一些我需要的子文件夹。

在此处输入图像描述

这是我到目前为止所做的,但图像来自可绘制文件夹,我想用资产中的那些来替换它们:

public class AfricaFragment extends ListFragment{

private AssetManager assets;

/** An array of items to display in ArrayList */
String android_versions[] = new String[]{
        "flag1",
        "flag2",
        "flag3",
        "flag4"
};
Integer[] imgid={ 
        R.drawable.a,
        R.drawable.b,
        R.drawable.c,
        R.drawable.d
};

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

    assets = getActivity().getBaseContext().getAssets();
    InputStream stream;


    CustomListAdapter adapter=new CustomListAdapter(getActivity(), android_versions, imgid);
    this.setListAdapter(adapter);

    return super.onCreateView(inflater, container, savedInstanceState);

}

@Override
public void onStart() {
    super.onStart();
    /** Setting the multiselect choice mode for the listview */
    getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

}
}

我很感激任何帮助。

标签: javaandroid

解决方案


试试这个代码

    public Bitmap getBitmapFromAssets(String fileName) {
        AssetManager assetManager = getAssets();

        InputStream is = null;
        try{
            is = assetManager.open(fileName);
        }catch(IOException e){
            e.printStackTrace();
        }
        Bitmap bitmap = BitmapFactory.decodeStream(is);

        return bitmap;
    }

推荐阅读