2016-07-19 55 views
3

我在res文件夾中有4個不同的值文件夾,裏面有不同的dimens.xml。每個dimens.xml文件具有不同的值。我得到的文件夾是以下幾點:如何在不同的Android屏幕上正確使用不同的維度資源

values/dimens.xml 
values-sw320dp/dimens.xml 
values-sw480dp/dimens.xml 
values-sw600dp/dimens.xml 

問題是,當我跑我的應用程序,似乎使用的值是存儲在values-sw320dp/dimens.xml的dimens.xml值甚至當我在谷歌Nexus 5模擬器中運行它。

使用例子是這樣的:

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:text="Account " 
    android:textSize="@dimen/common_textSize_n" /> 

我在做什麼錯? 或者對不同的屏幕尺寸使用不同尺寸值的正確方法是什麼?

任何幫助將不勝感激。非常感謝你!

我很抱歉,這個問題似乎有多個重複。我只是沒有找到已經提出的問題的答案。

回答

1

您必須在每個文件夾中放入不同的值。而dimens.xml將是默認值,如果缺少任何維度,它將採用表單形式。而所有其他情況下,它將根據屏幕大小取值。你在做什麼是正確的,你也可以添加更多的夢詩適用於mdpi,xhdpi,華電國際,xhdpi等

1

重命名文件夾名稱值-W MAX_SIZE DP

例如: -

  • 價值觀w320dp
  • 價值觀w600dp
  • 價值觀w820dp

每個文件夾都會有一個文件就是dimens.xml。 舉例說明如果您有任何佈局文件中使用「feed_title_size」維度。 你想設置這個尺寸的textSize,但不同的屏幕分辨率。那麼您需要在每個解析文件夾(例如values-w320dp) 中創建dimens.xml文件,並在資源標記內使用「feed_title_size」名稱在其中創建dimen屬性。 因此,「feed_title_size」將出現在多個dimens.xml文件中,並根據屏幕分辨率自動選擇適當的值。

這裏是價值觀w320dp文件夾中的dimens.xml樣子:

<resources> 
    <dimen name="feed_name_handle_width">100dp</dimen> 
</resources> 

這裏是在dimens.xml價值觀w640dp文件夾的樣子:

<resources> 
    <dimen name="feed_name_handle_width">150dp</dimen> 
</resources> 

原來這裏是包含在值文件夾中的dimens.xml文件。這個文件是默認文件。

<resources> 
    <dimen name="feed_text_width">50dp</dimen> 
</resources> 

這是你的佈局文件,其中包含您的TextView

<android.support.v7.widget.AppCompatTextView 
    android:layout_width="wrap_parent" 
    android:layout_height="wrap_content" 
    android:textSize="@dimen/feed_text_width" /> 
+0

謝謝您的答覆先生,但我爲什麼要這麼做?你可以先解釋一下嗎? –

+0

我已經更新了答案,您提到的文件夾名稱是正確的,您提到的不正確。 –

+0

非常感謝您,先生,我將適用於我的項目。乾杯! –