如何访问res / drawable /“文件夹”

时间:2011-09-26 07:27:28

标签: android drawable android-imageview

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

这是我正在使用的代码。

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

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

提前进行

狩猎

5 个答案:

答案 0 :(得分:18)

不,Android不允许/res/drawable下的子文件夹:Can the Android drawable directory contain subdirectories?

然而,您可以在/drawable下添加所有图像文件,然后通过以下方式以编程方式访问它们:

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

其中drawableName是可绘制文件的名称,例如myimage,如果图片文件为myimage.jpg

上面的代码将获得ID为R.drawable.drawableName的图像资源。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

您无法在res / drawable中创建文件夹,系统无法识别这些文件夹。

答案 3 :(得分:0)

您需要先保存图像,然后为它们制作一个xml,以便通过R.your_pics

访问它

答案 4 :(得分:0)

context.getResources().getDrawable(R.drawable.progressbar1);

Android - Open resource from @drawable String

相关问题