Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在资产文件夹中循环时出现问题:(_Android - Fatal编程技术网

Android 在资产文件夹中循环时出现问题:(

Android 在资产文件夹中循环时出现问题:(,android,Android,我在Assets文件夹中有一个子文件夹,名为images,我在其中存储我的图像(当然):)问题是我想获取我正在获取的图像的名称,但问题是,我还获取了其他未知名称,如:“android logo mask.png”,我猜这是android的默认图像。有没有办法跳过这个“android默认图像”只获取图像的名称?我的计划是将这些名称保存在一个数据库中,作为以后在ImageView上显示图像的参考。使用图像名称来显示图像是一个好主意吗?如果需要,下面是一些代码: Context context

我在Assets文件夹中有一个子文件夹,名为images,我在其中存储我的图像(当然):)问题是我想获取我正在获取的图像的名称,但问题是,我还获取了其他未知名称,如:“android logo mask.png”,我猜这是android的默认图像。有没有办法跳过这个“android默认图像”只获取图像的名称?我的计划是将这些名称保存在一个数据库中,作为以后在ImageView上显示图像的参考。使用图像名称来显示图像是一个好主意吗?如果需要,下面是一些代码:

    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下)

要求为AssetManager
list
方法(返回数组)提供单个文件的路径没有任何意义。方法文档中说:

返回给定路径上所有资产的字符串数组

这让我想知道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”后,我找到了正确的!谢谢!