2014-01-31 90 views
0

我已閱讀有關支持多種屏幕尺寸主題的Android文檔,但我似乎無法將其包裹在頭上。我知道修飾符需要在佈局名稱中設置,並且android會選擇一個限定符與手機寬度關聯的修飾符。關於支持多種屏幕尺寸的Android混亂

我不是要擔心的時刻片,但是當我開發我的物理設備,一切都很好,很正常,都在默認佈局文件夾:佈局/ main.xml中

但如果我測試我的朋友手機三星Galaxy S4的一切都以垂直方式延伸。我只是不知道從哪裏開始真的...

是否有一組標準文件夾可以實現我的佈局,然後編輯優化性能?

回答

1

如果一個佈局應該支持,那麼所有的屏幕,

  1. 您的應用程序theame應該是選項卡和手機

  2. similer從來沒有使用固定的值,像佈局(例如:300dp,15dp)都是包裹物,比賽,填充取決於要求,

  3. 使所有的圖標,圖像在2種或4個不同的尺寸

注意:如果你有一個從小到大設備UI小的變化,那麼在創建獲取設備的高度和寬度,進行更改(圖像,佈局寬度等)運行時從Java

如果你的應用無法從小similer到大設備

使用佈局(移動臺),佈局大(7個英寸標籤)佈局XLARGE(10英寸標籤)

1

開始與設備無關的像素(DP)和可擴展的字體的獨立像素(sp)

如果在此之後有東西被垂直拉伸,可能意味着它是一個背景圖像,它試圖填充整個佈局的高度(順便說一句,下次有問題時,請張貼相關的xml代碼和維度圖像或問題的截圖)。

在這種情況下,只需要使用不同的大小預選賽解決你的問題(你的像素密度限定詞)。密度限定符對寬度或高度大於設備屏幕的寬度或高度的位圖不起作用。這只是您應該注意的經驗法則。

screenshot of Android Studio's layout designer comparing the same layout for different screen types

使用Android Studio中/的IntelliJ的佈局設計來快速測試多個設備屏幕都一氣呵成工具欄中選擇框。這是最快的方法。不要使用Eclipse,它的ADT佈局設計器沒有這種能力(至少,不是我最後一次檢查)。即使你大部分時間都在使用Eclipse,但值得使用Android Studio/intelliJ來實現該功能,然後在完成測試佈局的這一方面後,切換回Eclipse(假設它仍然是您最喜歡的IDE) 。

此外,不要嘗試爲您遇到的每個尺寸限定符做不同的佈局。只有使用不同尺寸的限定符才能真正爲您提供問題的佈局。不要忘記,不需要重複的常見佈局組件只能在父佈局中抽象出來。如果您可以在不使用大小限定符的情況下找到解決特定問題的方法,那也可以。例如,如果不使用單個圖像作爲背景,則可以將其替換爲較大的圖像,您不介意以不同的高寬比進行剪裁,或者將背景圖像替換爲完全不同且抽象的圖像(如實體顏色,漸變,平鋪背景,大型矢量圖形或大型拼版 - 九png),看起來不同的長寬比,這可能會更簡單。

1

在較高水平,你只需要把這些東西護理:

- 更好的有分辨率爲切片或者XHDPI(720x1280)OR XXHDPI(1080×1920)的圖像,並讓他們在各自的文件夾。 XHDPI圖片分爲drawable-xhdpiXXHDPI圖片分爲drawable-xxhdpi文件夾。一組圖像切片就足夠了。
- 你並不需要編寫不同XML佈局在同一畫面,如果你不支持平板電腦(除了非常罕見次)
- 儘量避免硬編碼android:layout_width & android:layout_height參數。使用wrap_content,fill_parentmatch_parent
- 儘量避免憋在簡單drawable文件夾的任何圖像切片具體繪製的文件夾內,而不是像保持drawable-xhdpidrawable-hdpi
- 嘗試使用,顏色代碼& 9塊圖像儘可能的使用,而不是針對圖像這一切將減少構建大小,也有助於避免OutOfMemoryException
- 裏面簡單drawable文件夾,讓您的所有XML可繪像單獨的圖像按鈕的背景點擊&焦狀態等

如果您按照這些步驟,你不需要擔心支持多種屏幕分辨率對於大多數情況。