android-studio - Android从drawable目录动态加载gif
问题描述
我正在使用Recycler View
. 我有一些可绘制的 gif。我有一个整数列表List<Integer> images
,我想将ids
gif 存储在这个列表中。
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)
它可以正常工作。
解决方案
我找到了答案,当我尝试调试它时,使用
Log.d(MainPage.class.getName(), "The name is " + f.getName());
在那里我发现,它不显示可绘制目录中 gif 的名称,它只显示默认图像的名称。经过一番搜索,我找到了这个链接。
显示我必须使用我自己生成的 R 类,即my_package_name.R.drawable.class.getFields()
. 而不是 android.R.drawable.class.getFields()
.
推荐阅读
- java - 如何检查文件或控制台是否与标准输出相关联?
- postgresql - 每个函数/过程的 Postgres 日志目标
- python - Django 在注册表单中使用选择选项.py
- c - 循环缓冲区在第 6 个元素之后没有给出正确的缓冲区大小
- php - php 致命错误:require_once(): 无法打开所需的 'C:\xampp\htdocs\paribibi/public/index.php' (include_path='C:\xampp\php\PEAR')
- java - 我正在尝试在 Android Studio 中创建一个 Spinner
- ffmpeg - 调整覆盖视频的大小
- javascript - 如何使用 jQuery 使一个选定的选项颜色不同?
- javascript - 将 React 组件添加到 vanilla JS 文件
- javascript - 如何使用 React JS 钩子使 SEO 动态化