我很难弄清楚如何使用资源文件夹中的图像,就像在drawable文件夹中一样。我已经搜索并发现我可以使用getAssets()函数,但我无法弄清楚如何使用它,我在片段里面有服装listview。 我不想使用drawable文件夹,因为我的资产包含一些我需要的子文件夹。
这是我到目前为止所做的,但图片来自drawable文件夹,我想用资产中的那些来重新表达它们:
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);
}
}
我很感激任何帮助。
答案 0 :(得分:1)
从资产中获取图片:
try {
// Use image name with extension
InputStream ims = getActivity().getAssets().open("flag1.jpg");
Drawable d = Drawable.createFromStream(ims, null);
iv.setImageDrawable(d);
ims .close();
}
catch(IOException ex) {
return;
}
答案 1 :(得分:1)
试试此代码
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;
}