2011-09-26 124 views
6

在我的应用程序中,我有很多图片,我在res/drawable下分组在文件夹中。但Android不让我通过“R”访问它们。有没有办法访问这些文件夹。如何访问res/drawable /“文件夹”

这是我使用的代码。

ImageView iv = new ImageView(conext); 
    iv.setImageResource(R.drawable.**smiley.666**); 

我标记了我无法访问的部分。

提前THX

野生动物园

+1

我认为必须有**进口com.android.R; **或其他一些中的R文件导入删除它并生成项目再次它可能是指错误R.java文件,所以引用生成....... – Hanry

+0

可能重复的[Android的可绘制目录是否包含子目录?](http://stackoverflow.com/questions/1077357/can -the-android-drawable-directory-contain-subdirectories) – user2864740

回答

18

不,安卓不允许子文件夹:Can the Android drawable directory contain subdirectories?

但是你可以,添加/drawable下的所有图片文件,然后通过编程方式访问它们:

int drawableID = context.getResources().getIdentifier("drawableName", "drawable", getPackageName()); 
iv.setImageResource(drawableID); 

哪里drawableName是绘制文件的名称,即:myimage如果图像文件是myimage.jpg

上面的代码将获得图像资源ID为。

+0

如果我的图片被称为“angel.gif”,我必须将drawableName改为“天使”吧? Thx为您提供帮助! – safari

+0

只需检查此问题:http://stackoverflow.com/questions/4930398/can-the-android-layout-folder-contain-subfolders –

1

您不能在资源创建文件夹/绘制系统无法识别这些。

+0

+1,是的,我完全同意你的看法。@ Safari,你只需检查这个链接:http://stackoverflow.com/questions/4930398/can-the -一个droid-layout-folder-contain-subfolders –

0

你需要先保存图像,然后作出一个xml他们这样你就可以/res/drawable下访问它通过R.your_pics

+0

你有这样的考试吗?会太棒了! – safari

2

R.drawable.xxx只是Android SDK在R.java文件中生成的引用。您正在尝试在res文件夹中创建一个子文件夹。 SDK不能生成对任何子文件夹的引用,您必须将其放置在预定义的文件夹drawable-hdpi,-ldpi和-mdpi中。 如果你不知道这是如何工作的。我会总结一下。 Android运行在许多不同屏幕分辨率的不同设备上。使用这三个文件夹,您可以在三种分辨率下获得相同的图片,并根据您运行应用程序的设备,使用这三个文件夹中的一个。你可以在这里阅读更多: http://developer.android.com/guide/practices/screens_support.html