在文件夹中存储不同密度的drawables

时间:2013-09-25 09:38:05

标签: android drawable

我有两个疑问,关于将drawables存储在各自的文件夹中,例如.. ldpi,mdpi ..哪些我无法在任何地方找到答案。

  1. 我有这样的文件夹:
  2. enter image description here

    由于我拥有所有可能的文件夹名称,例如.., ldpi,mdpi,hdpi,xhdpi,xxhdpi ,我应该删除默认的可绘制文件夹吗?

    或者我应该将所有文件从 drawable-mdpi 移动到默认可绘制文件夹并删除 drawable-mdpi文件夹

    1. 我使用少量 xml 文件作为drawables,它们是选择器,自定义背景等。其中包含图像引用,如

      <item android:drawable="@drawable/ic_vote_clicked" android:state_pressed="true"/>
      <item android:drawable="@drawable/ic_vote_clicked" android:state_focused="true"/>
      <item android:drawable="@drawable/ic_vote"/>
      

    2. 我应该在哪里放置这些 xml 文件?在每个文件夹?或默认可绘制文件夹

      无论如何,像@drawable/ic_vote这样的png都在每个文件夹中。

5 个答案:

答案 0 :(得分:7)

任何与DPI无关的内容都应该放在drawables文件夹中。

任何与dpi相关的内容都应该在相关的DPI文件夹中。

没有理由删除任何文件夹。

所以你的xml文件应该在drawable文件夹中。

此外,它们所处的文件夹无关紧要,您仍然可以使用@drawable/引用它们,并找到正确的文件夹。

答案 1 :(得分:2)

Android首先检查相应密度特定文件夹中的资源,例如:首先在drawable-mdpi文件夹中搜索中密度屏幕的ic_launcher.png。如果发现,那就好了。如果图像不存在,那么android会从drawable文件夹中选择默认文件。

因此,要拥有特定于密度的图像资源,请将它们保存在相应的文件夹中,并将副本保存在可绘制文件夹中[仅用于安全方]。

对于xml资源,请仅将它们保存在drawable文件夹中。

希望有所帮助。

答案 2 :(得分:2)

我为drawable创建了五个文件夹,即ldpi,mdpi,hdpi,xhdpi和xxhdpi。另外对于布局我创建了三个文件夹,即layout-large和layout-xlarge。 我的项目要求是多设备支持。它在所有设备上运行良好。 问题是10英寸和7英寸标签。为了解决这个问题,我创建了layout-large和layout-xlarge文件夹,并将相应的文件放在各自的文件夹中。现在一切正常。 因此强烈建议您创建相应的文件夹。不要将所有内容都移到drawable或layout文件夹中。

答案 3 :(得分:0)

将xml文件放在默认的drawable文件夹中。不要改变他人。

答案 4 :(得分:0)

你不会删除任何这些文件夹。

可绘制密度文件夹用于要添加的所有元素,即png文件。在drawable文件夹中,您可以添加指定的通用图形,即使用XML结构(选择器等)