Android 如何访问res/drawable/“;文件夹";

Android 如何访问res/drawable/“;文件夹";,android,drawable,android-imageview,Android,Drawable,Android Imageview,在我的应用程序中,我有许多图片,我将它们分组在res/drawable下的文件夹中。但是Android不允许我通过“R”访问它们。是否有办法访问这些文件夹 这是我使用的代码 ImageView iv = new ImageView(conext); iv.setImageResource(R.drawable.**smiley.666**); 我标记了我无法访问的部分 提前Thx safari您无法在res/drawable中创建文件夹。系统无法识别这些文件夹。您需要先保存图像

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

这是我使用的代码

    ImageView iv = new ImageView(conext);
    iv.setImageResource(R.drawable.**smiley.666**);
我标记了我无法访问的部分

提前Thx


safari

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

您需要先保存图像,然后为它们生成xml,这样您就可以通过R访问它们。您的图片

不,Android不允许在
/res/drawable
下创建子文件夹:

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

int drawableID = context.getResources().getIdentifier("drawableName", "drawable", getPackageName());
iv.setImageResource(drawableID);
其中
drawableName
是可绘制文件的名称,即
myimage
如果图像文件是
myimage.jpg


上面的代码将获得id为
R.drawable.drawableName

R.drawable.xxx的图像资源,它只是Android SDK在R.java文件中生成的一个引用。您正试图在res文件夹中创建子文件夹。SDK无法生成对任何子文件夹的引用,您必须将其放入预定义的文件夹drawable hdpi、-ldpi和-mdpi中。 如果你不知道这是怎么回事。我来总结一下。Android运行在许多不同的设备上,具有许多不同的屏幕分辨率。使用这三个文件夹,您可以在三种分辨率下拥有相同的图片,并且根据您运行应用程序的设备,将使用这三个文件夹中的一个。您可以在此处阅读更多内容:


我想一定有导入com.android.R;或者在您的文件中导入了其他R,只需删除它并重新构建您的项目,它可能引用了错误的R.java文件,因此生成了引用。……可能是+1的副本,是的,我完全同意您的意见。@Safari,您只需检查此链接:如果我的图片名为“angel.gif”,我必须将drawableName更改为“angel”,对吗?谢谢你的帮助!再检查一下这个问题:你有这个例子吗?那太好了!
context.getResources().getDrawable(R.drawable.progressbar1);