8

我已創建不同的dimens.xml文件並將它們放置在適當的值文件夾中。Android並未從值文件夾中選取正確的dimens.xml文件

我有以下 「值」 文件夾中定義

值, 值-大, 值正常, 值小, 值-sw320dp, 值-sw320dp-土地, 值-sw480dp, 價值觀sw600dp, 價值觀sw720dp和 價值觀sw720dp土地

問題是,當我我在手機上安裝應用程序< = 5英寸,dimens.xml從值-sw320dp由Android選擇。選擇與屏幕密度無關。

我已經測試了S4,Moto G,S4 Mini和2.3設備上的應用程序。結果始終如一。

我在這裏做錯了什麼?

+0

請參閱http://stackoverflow.com/questions/16454751/sw320dp-layout-blocks-xlarge-layout –

+0

我能夠通過將hdpi,xhdpi和xxhdpi附加到values-sw320dp來解決我的問題。 我創建了以下文件夾值-sw320dp-hdpi,values-sw320dp-xhdpi和values-sw320dp-xxhdpi並添加了相應的dimens.xml文件。現在挑選正確的尺寸。 –

+0

偉大:)是的,[限定符](http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources)是必需的,正如在SO帖子中提到的那樣。 –

回答

3

我不知道你在嘗試的方式是什麼問題。但我總是創建如下值文件夾:values,values-ldpi,values-mdpi,values-hdpi,values-xhdpi,values-w360dp-mdpi,values -w600dp-mdpi等。它總是爲我工作。

+0

dp的目的通過定義具有密度限定符的值文件夾而被擊敗 –

8

那麼現在我很清楚,values-sw320dp將是dimens.xml將被選中的唯一文件夾,因爲電話< = 5英寸屬於該類別。

我正在犯的錯誤是忽略320dp大小屏幕的屏幕密度。

因此,我找到的解決方案是根據屏幕密度創建不同的值文件夾,即創建名爲values-sw320dp-ldpi, values-sw320dp-mdpi, values-sw320dp-hdpi, values-sw320dp-xhdpi and values-sw320dp-xxhdpi的文件夾,並將相應的dimens.xml文件放入其中。

我希望這可以幫助那些可能偶然發現這個問題的人。

+1

這沒有任何意義。屏幕尺寸和屏幕分辨率不一樣。您可以使屏幕尺寸小於5英寸,但分辨率超過320 dp。 – AndroidDev

+0

@AndroidDev請再次閱讀我的問題,我曾問過:「問題出在當我在手機上安裝應用程序<= 5英寸,dimens.xml來自值-sw320dp是由Android選擇的,選擇與屏幕密度無關。「 我知道一個事實,即屏幕大小和分辨率不一樣,但在我的情況下值-sw480dp配置被忽略,原因是我的手機沒有超過xhdpi分辨率,請看這(ldpi(低) 〜120dpi mdpi(中)〜160dpi hdpi(高)〜240dpi xhdpi(超高)〜320dpi)http://developer.android.com/guide/practices/screens_support.html –

+0

但我猜如果您今天使用任何QHD手機,您將不得不使用480dp或640dp配置,您可以通過這樣做來驗證您的應用程序。 –

相關問題