Android:加载多张图片

时间:2011-02-02 16:29:21

标签: android resources bitmap

我最近开始在android中开发游戏,之前从未使用它,并且想知道是否有一种简单的方法可以将一组图像加载到应用程序中。由于我目前的实施基本上涉及

创建一个int []数组,
将每个drawable的值存储到此数组中,(现在必须手动编码,因此如果我添加更多图像,则必须以程序方式添加)

然后遍历数组中的每个项目并调用BitmapFactory来获取资源。 (不幸的是我没有我的代码,因为它在家里,我在工作,但这是一个小工具)

所以2个问题,有没有办法获得drawables而不必手动将每个项目放入int [] - 即查找文件名前缀然后只加载带有前缀的资源?

这引出了我的第二个问题,因为我在可绘制的资源目录中不仅仅是这些图像,还有一种方法可以添加额外的组织(文件夹)来更好地管理文件。目前我在可绘制文件中有大量图像,我将如何引用这些子文件夹/图像。

2 个答案:

答案 0 :(得分:1)

资源结构中不能包含子文件夹。 Android依赖于文件夹布局来确定在什么条件下使用哪种资源(本地化,不同的屏幕分辨率等)。

我不确定您为什么要尝试加载一大堆图像,但是有一些(较慢的)方法允许您按字符串名称查找资源。如果您为图像使用了命名约定,则可以通过[Resources.getIdentifier()] [1]以这种方式查找它们。但是,在游戏性能方面可能很重要,所以你可能会更好地使用int ID直接使用int ID,因为它更有效率。

[1]:http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier(java.lang.String,java.lang.String,java.lang.String)

答案 1 :(得分:0)

我正在上传大量图片,因为它们会向用户显示不同的项目。它不是一个响应性至关重要的系统,所以它对我想要的东西没问题。虽然......

  

public int getIdentifier(String name,String defType,String defPackage)   自:API Level 1

     

返回给定资源名称的资源标识符。完全限定的资源名称的格式为“package:type / entry”。前两个组件(包和类型)是可选的,如果在此指定defType和defPackage。

     

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

他们建议使用资源ID,但如果我想稍后添加文件,那么我必须重新编译应用程序以包含额外文件,这是它让我烦恼的地方,因为pic与一个项目关联我有一个字符串数组。所以我可以在不更改代码的情况下向数组添加项目,但不添加图像。

当然有一个功能可以解决这个问题吗?