将drawable中的图像作为文件读取
Posted
技术标签:
【中文标题】将drawable中的图像作为文件读取【英文标题】:Read images in drawable as File 【发布时间】:2016-08-23 12:31:08 【问题描述】:我想以File
对象的形式读取drawable 文件夹中的所有图像,并将它们存储在File
的数组中。
有没有办法获取所有可绘制图像的列表并将它们作为文件读取?
编辑:我需要知道以下内容..
如何从可绘制文件夹中收集所有图像。我的图像根据内容具有不同的有意义的名称。名称中没有共同的模式。
如何将这些图像读取为File
。
【问题讨论】:
【参考方案1】:不,因为它们不是设备上的文件。它们只是您的开发机器上的文件。资源是运行时 APK 本身中的条目。
【讨论】:
我应该如何获取所有图像?它们都有不同的不常见名称。【参考方案2】:首先您需要将所有可绘制对象转换为位图并保存到本地存储,然后将其作为文件读取
你可以通过这个方法获取所有的Drawables
public Drawable[] getAllDrawables()
Field[] ID_Fields = R.drawable.class.getFields();
Drawable[] drawables = new Drawable[ID_Fields.length];
for(int i = 0; i < ID_Fields.length; i++)
try
drawables[i] = ContextCompat.getDrawable(this,ID_Fields[i].getInt(null));
catch (IllegalArgumentException | IllegalAccessException ignored)
return null;
return drawables;
可能重复
Here
【讨论】:
可以将其转换为地图而不是位图,还有一半的问题是如何从可绘制文件夹中获取所有文件的集合。 通过上面的代码,我在 drawable 文件夹中看到了许多不需要的文件。在我这边,我添加了 8 张图像,但这里数组的长度为 85。我检查了磁盘中的可绘制文件夹是否有任何隐藏文件,但没有。你能帮忙只提取我在那里添加的那些图像文件吗? 因为在构建时 android 会生成默认的主题可绘制对象并将其添加到 apk,因此数组大小会增加,这导致您需要添加可绘制名称的唯一 id 并从具有唯一 id 的数组中过滤。跨度>以上是关于将drawable中的图像作为文件读取的主要内容,如果未能解决你的问题,请参考以下文章
使用 OpenCV(C++)读取文件夹中的任何 .jpg 图像 [关闭]