0

Android 将为 res/drawable 目录中的每张图片分配 id。他们在哪里?我想从池中动态选择一张图片并显示它。我怎样才能做到这一点?

4

3 回答 3

0

它们存储在 res/drawable 文件夹中。

如果文件名是 demo.png,那么它们可以通过 R.drawable.demo 访问

如果要访问随机可绘制对象,请将所有资源标识符存储在 Integer ArrayList 中,并使用 Random() 以编程方式生成随机函数,并从 arraylist 中获取该特定项目。然后你每次都会有一个随机的drawable。

于 2013-01-11T05:35:54.323 回答
0

自动生成的 id 在 gen 文件中,但不建议使用它们。最好通过一些预定义的 R.drawable.filename 数组直接使用文件名并随机选择它们。

于 2013-01-11T05:36:27.350 回答
0

ID 存储在 R.java 文件中,但您无法对其进行编辑,因为您的更改每次都会被覆盖。

您还可以按名称访问资源,如果您知道资源的名称或可以根据某些预定义的命名方案派生它们,这可能是解决问题的可行方法。(例如图像在序列中命名image1image2依此类推。

您必须使用类的getIdentifier()方法将名称映射到标识符Resources

String name = "resource" + rng.nextInt(count);
int resource = getResources().getIdentifier(name, "drawable", "com.package");

此方法的文档说:

注意:不鼓励使用此功能。按标识符检索资源比按名称检索资源效率更高。

这是真的,但如果您在对性能不敏感的代码中执行此操作,则不必成为问题。

或者,如果您不介意在 XML 中列出资源,您可以创建一个类型化数组,然后可以从中随机选择。

于 2013-01-11T05:36:52.980 回答