首页 > 解决方案 > Android从drawable目录动态加载gif

问题描述

我正在使用Recycler View. 我有一些可绘制的 gif。我有一个整数列表List<Integer> images,我想将idsgif 存储在这个列表中。

gif我从以下代码中获得了名称:

Field[] drawables = android.R.drawable.class.getFields();
        for (Field f : drawables) {
            try {
                int iconResId = this.getResources().getIdentifier(f.getName(),"drawable",this.getPackageName());
                images.add(iconResId);
              
               
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

但它不起作用,它没有向我显示任何图像。我确信其余的代码没问题,因为如果我手动添加任何 gif 的名称,即images.add(R.drawable.gif_name)它可以正常工作。

标签: android-studioandroid-drawable

解决方案


我找到了答案,当我尝试调试它时,使用

Log.d(MainPage.class.getName(), "The name is " + f.getName());

在那里我发现,它不显示可绘制目录中 gif 的名称,它只显示默认图像的名称。经过一番搜索,我找到了这个链接

显示我必须使用我自己生成的 R 类,即my_package_name.R.drawable.class.getFields(). 而不是 android.R.drawable.class.getFields().


推荐阅读