我正在尝试使用以下代码获取我的资源文件夹中的所有图像
private List<String> getImage()
{
/* 设定目前所在路径 */
List<String> it=new ArrayList<String>();
File f=new File("file:///android_asset/");
File[] files=f.listFiles();
Log.d("tag", "读取asset资源");
/* 将所有文件存入ArrayList中 */
for(int i=0;i<files.length;i++)
{
File file=files[i];
if(getImageFile(file.getPath()))
it.add(file.getPath());
}
return it;
}
private boolean getImageFile(String fName)
{
boolean re;
/* 取得扩展名 */
String end=fName.substring(fName.lastIndexOf(".")+1,
fName.length()).toLowerCase();
/* 按扩展名的类型决定MimeType */
if(end.equals("jpg")||end.equals("gif")||end.equals("png")
||end.equals("jpeg")||end.equals("bmp"))
{
re=true;
}
else
{
re=false;
}
return re;
}
不知怎的,我对这个表达不确定
File f=new File("file:///android_asset/");
嗯,我知道当你从资源文件夹中读取一个txt文件或html文件时你可以使用它,但是图像也会接受这个吗?
我已使用下面的代码解决了这个问题
private List<String> getImage() throws IOException
{
AssetManager assetManager = getAssets();
String[] files = assetManager.list("image");
List<String> it=Arrays.asList(files);
return it;
}
如果有人想知道
答案 0 :(得分:11)
通常,您可以使用AssetManager管理资产文件夹中的文件。在活动中,调用getAssets ()方法获取AssetManager实例。
编辑: 您可以使用AssetManager读取如下图像:
AssetManager am=this.getAssets();
try {
Bitmap bmp=BitmapFactory.decodeStream(am.open("009.gif"));
chosenImageView.setImageBitmap(bmp);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
请注意,BitmapFactory.decodeStream()
方法默认情况下在UI线程上运行,因此如果图像太大,应用程序将会卡住。在这种情况下,您可以更改samplesize或启动新线程来执行此操作。