Android 在资产文件夹中循环时出现问题:(
我在Assets文件夹中有一个子文件夹,名为images,我在其中存储我的图像(当然):)问题是我想获取我正在获取的图像的名称,但问题是,我还获取了其他未知名称,如:“android logo mask.png”,我猜这是android的默认图像。有没有办法跳过这个“android默认图像”只获取图像的名称?我的计划是将这些名称保存在一个数据库中,作为以后在ImageView上显示图像的参考。使用图像名称来显示图像是一个好主意吗?如果需要,下面是一些代码:Android 在资产文件夹中循环时出现问题:(,android,Android,我在Assets文件夹中有一个子文件夹,名为images,我在其中存储我的图像(当然):)问题是我想获取我正在获取的图像的名称,但问题是,我还获取了其他未知名称,如:“android logo mask.png”,我猜这是android的默认图像。有没有办法跳过这个“android默认图像”只获取图像的名称?我的计划是将这些名称保存在一个数据库中,作为以后在ImageView上显示图像的参考。使用图像名称来显示图像是一个好主意吗?如果需要,下面是一些代码: Context context
Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
context = this.getApplicationContext();
ImageHelper i = new ImageHelper();
i.readImages(context);
}
public class ImageHelper {
public ImageHelper(){}
public void readImages(Context context){
AssetManager am = context.getAssets();
try {
String[] getImages = am.list("images");
for(String imgName : getImages){
Log.e("IMAGE NAME----->", imgName);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
提前感谢。
“images”
应该是类似于“/path/assets/images/image.png”的路径。
如果系统在该“images”文件夹中添加文件,为什么不为您的图像创建一个新文件夹,确保只包含您的文件?请为图像文件夹使用其他名称,如“MyImages”。那它应该很好用。它很有趣。即使您没有资产/图像目录,当您使用:
myImageList = Arrays.asList(getResources().getAssets().list("images"));
您将看到结果中列出了android-logo-mask.png和android-logo-shine.png
这让我想知道那些真实的图像文件在Android代码中的位置。我根本不知道代码库,但是:
在res下的资产目录中列出这两个目录(不同于我存储项目资产的资产目录,它不在res下)
要求为AssetManagerlist
方法(返回数组)提供单个文件的路径没有任何意义。方法文档中说:
返回给定路径上所有资产的字符串数组
这让我想知道list方法中是否有错误,或者是否有其他原因,它被设计为在需要资产列表时返回特定的系统资产
以类似的方式,如果我使用:
myAssetList = Arrays.asList(getResources().getAssets().list(""));
我看到包含“声音”和“webkit”,它们与我的资产的任何现有子目录都不对应。您不使用
drawable
目录有什么特殊原因吗?我在drawable目录中有我的图标,我不想将它们与应用程序图像混在一起。此外,你能在可绘制目录中创建文件夹并循环它们吗?正确。它应该是assets目录中的一个路径。那么这正是我得到它的方式,但我仍然得到其他图像。尝试使用javadoc中建议的具体文件的路径。你是说String[]list=am.list(“images/image.png”);如果是这样的话,我不能这样做,因为我有900个图像:(这就是我刚才做的。我创建了一个图像文件夹,在那里有图像,String[]getImages=am.list(“图像”);然后我循环浏览它们,但我仍然得到另一张图片,就像它循环浏览资产,从那里恢复一些名称,然后循环浏览我的目录。我不明白发生了什么:(这是wierd)当我来到这里时,这个答案是否定的,但这对我来说是有效的。将文件夹称为“图片”在我的资产目录中添加了“android logo mask.png”和另一个文件,但用另一个名称调用它解决了这个问题。它对我很有用,虽然我使用“images”作为文件夹名称,但我无法获得正确的图像列表,只有一个:“android logo mask.png”,它根本不存在。将名称“images”更改为“sampleImages”后,我找到了正确的!谢谢!