在Android SDK文档中,所有使用@drawable/my_image xml语法的示例都直接处理存储在项目res/drawable目录中的图像。

我想知道在可绘制目录中创建子目录是否显式不允许。

例如,如果我有以下目录布局:

res/drawable
-- sandwiches
  -- tunaOnRye.png
  -- hamAndSwiss.png
-- drinks
  -- coldOne.png
  -- hotTea.png

我可以引用金枪鱼沙拉三明治的图片@drawable/三明治/tunaOnRye吗

或者我必须在可绘制目录中保持层次结构平坦。


当前回答

检查Bash Flatten Folder脚本,该脚本将文件夹层次结构转换为单个文件夹

其他回答

这是不完美的方法。你必须以同样的方式实现,就像这里显示的那样。

还可以通过使用的代码调用文件夹下的图像

Resources res = getResources();
Drawable shape = res. getDrawable(R.drawable.gradient_box);

TextView tv = (TextView)findViewByID(R.id.textview);
tv.setBackground(shape);

资产/ 您可以使用它来存储原始资产文件。保存在这里的文件将按原样编译为.apk文件,并保留原始文件名。您可以以与使用uri的典型文件系统相同的方式导航此目录,并使用AssetManager将文件作为字节流读取。例如,这是纹理和游戏数据的好位置。 http://developer.android.com/tools/projects/index.html

Right click on Drawable Select New ---> Directory Enter the directory name. Eg: logo.png(the location will already show the drawable folder by default) Copy and paste the images directly into the drawable folder. While pasting you get an option to choose mdpi/xhdpi/xxhdpi etc for each of the images from a list. Select the appropriate option and enter the name of the image. Make sure to keep the same name as the directory name i.e logo.png Do the same for the remaining images. All of them will be placed under the logo.png main folder.

不,资源机制不支持可绘制目录中的子文件夹,所以是的-你需要保持层次结构平坦。

您所显示的目录布局将导致所有图像都不可用。

从我自己的实验来看,在res/drawable文件夹中有一个包含任何项目的子文件夹,将导致资源编译器失败——阻止R.java文件正确生成。

检查Bash Flatten Folder脚本,该脚本将文件夹层次结构转换为单个文件夹