2014-02-19 41 views
-1

如果我只有一个样式文件文件夹,它包含的项目从dimens文件然后我得不到正确的结果。只有当我将在每个文件夹风格文件(MDPI,华电国际等),我会得到正确的结果。我是否需要每个DPI文件夹中的样式文件?

这是有点奇怪,因为对于可绘制我可以只在一个文件夹中的文件和其他文件夹中不同DPI的资源,它可以正常工作。 有人可以解释如何使用维数引用Android搜索样式项?

这是一个小例子。

值/ styles.xml

<resources> 
    <style name="message_item_topic"> 
     <item name="android:textSize">@dimen/message_id_topic</item> 
    </style> 
</resources> 

值/ dimens.xml

<resources> 
    <dimen name="message_id_topic">12sp</dimen> 
</resources> 

值-HDPI/dimens.xml

<resources> 
    <dimen name="message_id_topic">15sp</dimen> 
</resources> 
+1

备注:如果您正在通过DPI更改'sp'中的文本大小(已通过设备DPI缩放以提供一致的大小),则可能会出错。 – ianhanniballake

+0

@ianhanniballake这只是一个例子,可以说它是一个DP,而不是文本大小。 –

+1

也许不是最好的例子(因为DP也是DPI的缩放比例),但我明白你的意思。 – ianhanniballake

回答

0

如果您使用的是px,cm,in,...则单独值中的不同dimens.xml-(l | m | h | xh | xxh)dpi会有意义。

事情是相对的。
而且周围有太多的设备。
您永远不会确定您的应用适合每个现有设备。
有些用户会与您联系并要求修复其设备。
因此,您将阅读规格,制作模拟器,添加特定的drawable/values并重新发布您的应用程序。请记住,“平板电脑”将需要特殊的可绘制/值文件夹。

1

作为每Providing Alternate Resources guide

Android支持多种配置限定符,您可以通过用短划线分隔每个限定符,将多个限定符添加到一个目录名称。 Table 2按优先顺序列出了有效的配置限定符 - 如果对资源目录使用多个限定符,则必须按照它们在表中列出的顺序将它们添加到目录名称中。

rules for finding the best matching resource

  1. 消除相矛盾的设备配置资源文件。 (例外:DPI)
  2. 在列表中选择(下一个)最高优先级限定符
  3. 是否有任何资源目录包含此限定符?
    • 如果没有,回到步骤2,并期待在接下来的预选赛。 (在这个例子中,答案是,直到达到语言限定词“不”。)
    • 如果是,继续到步骤4
  4. 消除资源目录,不包括这个限定词

作为每流程图:

flowchart

每个资源根据这些规则加载分开(即,对于每个的查找每个都发生210次,独立于其他资源)。您遇到的任何显示问题都可能是由于不知道按DPI(dpsp)缩放的事物与不是(px)的事物之间的差异 - 使用dpsp,并且您不需要声明备用资源但可绘制)用于不同的DPI设备。

+0

我读了这个,但没有关于我的问题的信息。 –

+0

您发布的唯一问题是“有人可以解释当我使用来自维度的引用时Android搜索样式项目的方式吗?”我建议你重新提出你的问题或者展示你所看到的你认为是错误的具体例子。 – ianhanniballake

相关问题