2014-02-19 42 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

相關問題