[英]Support different screen sizes in Android
我需要做的就是只有一個布局,然后將其復制到每個不同的文件夾中,或者我還需要更改每個布局中的值?
首先,刪除您創建的layout-sw120dp
, layout-sw160dp
, layout-sw240dp
, layout-sw320dp
和layout-sw480dp
目錄。 或者,至少暫時不要理會它們。
然后,您開始實現UI,將布局資源放在res/layout/
。
然后,對於在某些情況下需要不同布局的那些布局, 然后在需要不同布局時創建一個代表大小的目錄。 將布局從res/layout/
復制到新目錄,然后修改該副本以反映所需的任何更改。
換句話說,每個布局的一個副本位於res/layout/
,您需要在需要更改UI的特定目錄中覆蓋 其他修改的副本,以覆蓋所需的位置。
這是一個很久以來就一直存在的問題,您會看到很多答案,但仍然不適合所有類型。 當遇到相同問題時,我的想法是使用PercentRelativeLayout 。 這是一個相對較新的功能,它始於Android支持版本23.0 (android sdk管理器),並且對我來說是最大的改變者之一,因為它允許開發人員相對於布局大小按百分比指定開發人員。 並且由於以百分比表示,因此它適合所有具有不同尺寸的屏幕尺寸 ,但同時保持該比例 。
當然,此方法涉及一些反復試驗和大量實驗 ,但是我發現該方法最容易實現,並且消除了為各種屏幕尺寸維護尺寸的麻煩。
很少有教程可以幫助您入門:
https://www.tutorialspoint.com/android/android_relative_layout.htm https://guides.codepath.com/android/Constructing-View-Layouts
如果要為每個屏幕密度使用相同的布局,則無需創建不同的文件夾。 僅使用一個簡單的“布局”,系統就會針對每種密度對其進行解釋。 但是,這可能會導致某些物理設備上的奇怪布局,具體取決於它們的屏幕大小和密度...如果您的應用程序支持方向更改,則您還必須意識到的另一點是,您必須設計縱向和橫向的布局。 通過復制用於密度的文件夾並添加“ -port”或“ -land”來通知系統,必須根據您的應用當前正在運行的設備的實際方向來使用哪個文件夾來完成此操作。 如果要精確定義應用程序的外觀,則必須針對每種密度自定義布局。 而且,如果您使用位圖,則必須自定義它們(例如,應將應用程序圖標定義為不同的大小,以保持每個屏幕密度的良好外觀)。 就像布局一樣,您必須創建“ drawable -...”文件夾以包含位圖的相應版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.