一.读取Assets文件夹中的文件
1.创建工具类AssetUtils
2.自定义参数读取字符串,参数固定(下图时读Json文件),用AssetManager来读文件夹
public static String getJosonFromAssets(Context context,String filename){
//1.获取Assets文件夹管理器(固定写法)
AssetManager am =context.getResources().getAssets();
//输出流
ByteArrayOutputStream baos=new ByteArrayOutputStream();
//2.获取文件输入流
try {
//读文件夹中的文件
InputStream is=am.open(filename);
//读取内容到内存流
int hasRead=0;
byte[]buf=new byte[1024];
while (true){
hasRead=is.read(buf);
if(hasRead==-1){
break;
}
baos.write(buf,0,hasRead);
}
String msg=baos.toString();
is.close();
return msg;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
3.用Bitmap读图片读图片
public static Bitmap getBitmapFromAssets(Context context,String filename){
Bitmap bitmap=null;
//获取文件夹管理者
AssetManager am=context.getResources().getAssets();
try {
InputStream is=am.open(filename);
bitmap= BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
4.将数据放入数组
//将Assets文件夹中的图片一起读取,放在内存当中,便于管理
public static void saveBitmapFromAssets(Context context, StarInfoBean starInfoBean){
logoImgMap = new HashMap<>();
contentImgMap=new HashMap<>();
List<StarInfoBean.StarinfoBean> starlist=starInfoBean.getStarinfo();//注意,之前数据已经解析进starInforBean了
for (int i = 0; i <starlist.size() ; i++) {
//读取图片
String logoname=starlist.get(i).getLogoname();
String filename="xzlogo/"+logoname+".png";
Bitmap logoBm=getBitmapFromAssets(context,filename);
logoImgMap.put(logoname,logoBm);
String contentName="xzcontentlogo/"+logoname+".png";
Bitmap bitmap=getBitmapFromAssets(context,contentName);
contentImgMap.put(logoname,bitmap);
}
}
5.get方法得到数组
public static Map<String,Bitmap>getLogoImgMap(){
return logoImgMap;
}
public static Map<String,Bitmap>getContentImgMap(){
return contentImgMap;
}