簡體   English   中英

如何為手機、小型平板電腦和大型平板電腦存儲 3 個布局文件

[英]How to store 3 layout files for phone, small tablets and big tablets

我有一個包含大約 20 個 xml 布局文件的應用程序。 雖然花了很多時間為所有設備制作通用約束布局(這對我來說是不可能的),但我現在想為手機、小型平板電腦和大型平板電腦創建一個單獨的布局文件。 所以我將有 20 個布局文件,用於手機(5' - 6.8' 顯示屏)、小型平板電腦(7' - 9' 顯示屏)和大型平板電腦(超過 9' 顯示屏)。

我的問題是,我應該將它們存儲在哪里,以便 Android 根據使用的設備自動選擇正確的布局? 在這個問題中,Layout for tablets in Android據說我應該將 xml 布局文件存儲在

res/layout/main_activity.xml           # For handsets (smaller than 600dp available width)
res/layout-sw600dp/main_activity.xml   # For 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml   # For 10” tablets (720dp wide and bigger)

要么

res/layout/my_layout.xml            // layout for normal screen size
res/layout-small/my_layout.xml      // layout for small screen size
res/layout-large/my_layout.xml      // layout for large screen size
res/layout-large-land/my_layout.xml // layout for large screen size in landscape mod

但是,我無法通過像素密度來區分設備,因為具有相同顯示尺寸的不同設備可能具有不同的分辨率。 此外,我想制作 20 個 xml 布局文件,而不是針對一種特定尺寸,而是針對顯示尺寸范圍(否則我將不得不創建太多的 xml 布局文件)。

如何定義用於存儲顯示尺寸范圍的 xml 布局文件的文件夾:手機(5' - 6.8' 顯示屏)、小型平板電腦(7' - 9' 顯示屏)和大平板電腦(超過 9' 顯示屏)。

提醒:我會很感激每一個進一步的評論,因為我仍然不知道該怎么做

使用此依賴項。

implementation 'com.intuit.ssp:ssp-android:1.0.5'
implementation 'com.intuit.sdp:sdp-android:1.0.5'

然后申請

android:layout_width="@dimen/_24sdp"
android:layout_height="@dimen/_24sdp"

對於你的問題和任何有同樣問題的人,

  • 使用約束布局來制作靈活的 UI 並使用限定符。
  • 您將必須有多個布局文件才能更好地支持所有屏幕尺寸和方向,
  • 但不需要自己制作這些文件夾 - 首先為小型移動屏幕制作一個默認的 xml 布局,然后制作一個與默認文件同名的 xml 布局文件,但向其添加限定符sw-600dp (或根據用例)從“可用限定符”列表中調整布局。 然后用sw-700dp制作一個並調整它。
  • Android 將根據提供的限定符自動檢測要使用的布局文件。
  • 作為參考,請參閱文檔中的示例 Android follows an order of precedence when determining which resources to apply 此順序與“可用限定符”列表中給出的限定符相同,可供選擇。

首先,您寫下您已決定根據英寸尺寸應用顯示更改,不建議這樣做。 由於有許多不同的數字小工具,在顯示屏的每一英寸中具有不同的像素,這意味着僅具有更高的生產尺寸並不能帶來更好的分辨率質量; Android提供了一個單位來解決這個問題,它是一個比率:dots per inch "dp"。 抽時間看看 Android 關於測量工作原理的官方指南:

https://developer.android.com/guide/topics/large-screens/support-different-screen-sizes

在這里,您可以找到合適的大小分隔符以及聲明它們的原因的定義。

為了讓您的 App 能夠選擇合適的布局來顯示,您必須根據分辨率在目錄中添加新的 Activity 布局或 Fragment 布局。 只需創建一個與當前現有布局同名的布局,但將其目錄更改為所需的大小類別,例如:布局 sw-600dp、布局 sw-840dp 等。然后將創建的布局設計為負責上述顯示。

這是您的資源的外觀:

這是您的資源的外觀:

如果您可以表達代碼的重要部分,我可以提供更明確的建議。

最后,如果您的應用僅由活動處理,您可能需要使用片段工具來保存和顯示不同的布局。 看看這個:

https://developer.android.com/guide/fragments/fragmentmanager

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM