gpt4 book ai didi

android - 如何从 Assets 文件夹中获取所有文件

转载 作者:可可西里 更新时间:2023-11-01 19:06:21 26 4
gpt4 key购买 nike

我正在尝试使用以下代码获取 Assets 文件夹中的所有图像

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/"); 

好吧,我知道当从 assets 文件夹中读取 txt 文件或 html 文件时,您可以使用它,但是图像也会接受它吗?

我已经使用下面的代码解决了这个问题

private List<String> getImage() throws IOException
{
AssetManager assetManager = getAssets();
String[] files = assetManager.list("image");
List<String> it=Arrays.asList(files);
return it;

}

万一别人想知道

最佳答案

一般来说,您可以使用 AssetManager管理 Assets 文件夹中的文件。 Activity 中调用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 线程上运行,因此如果图像太大,应用程序会卡住。在这种情况下,您可以更改样本大小或启动一个新线程来执行此操作。

关于android - 如何从 Assets 文件夹中获取所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8368101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com