2010-12-09 77 views
1

我已經提出了一個類似這樣的問題,但我想我會問一個更一般的問題來獲得更廣泛的輸入。如何開始爲多種設備大小/密度開發Android應用程序?

我問這個問題是因爲我開發的最後兩個應用程序,我把所有的圖像資源放在drawable-hdpi文件夾中,沒有處理橫向模式,主要是在我自己的個人Droid手機上測試它,基本上感覺就像我只爲自己的設備開發。雖然我一直在適當的地方使用dpi和sp,但這還不足以讓我的應用在其他屏幕尺寸/密度上適當縮放。它有時可以縮放,但總是傾向於在較小的尺寸上切割屏幕的一部分。

什麼是最好的方式來開始一個應用程序,將至少在所有設備上有所放大?

例如,我應該構建我的應用程序佈局,使其在默認HVGA屏幕上看起來正確,並允許它縮放到更大的密度?積極構建縱向和橫向佈局文件是否是最佳做法?

你在做什麼來確保你的應用在所有設備上看起來不錯,而不僅僅關注於一種尺寸,然後爭先恐後地處理這個問題?

+2

http://developer.android.com/guide/practices/screens_support.html – 2010-12-09 00:32:15

回答

2

我公司始終遵循這些規則:

  • 設置一切從supports-screens爲true。 Android會知道你已經準備好了每一個屏幕環境,並且你會知道它不會進行任何屏幕虛擬化。例如:即使您的設備具有大尺寸屏幕,您的代碼也會將其視爲普通尺寸的屏幕
  • 不使用固定尺寸的寬度和高度。如果您必須使用「dp」作爲虛擬像素。使用WRAP_CONTENT和FILL_PARENT。 「dp」是具有160dpi的屏幕上的物理像素。如果您的應用在密度較低/較高的設備上運行,則android會爲您重新計算此值。
  • 使用「dp」作爲字體大小的單位。
  • 儘量做一切相對。如果你想擁有「在另一個之下的東西」等,你可以使用RelativeLayout。如果你需要百分比,你可以使用LinearLayout。
  • 使用九段式作爲背景。
  • 確保您將資源放入正確的可繪製/佈局文件夾中。

關 - 當然,這不是每一個項目最好的方法:)有時UI設計者希望一些額外的:]

+0

莫非你討論「不要使用固定尺寸的寬度和高度」。稍微進一步?應該用什麼來代替對某物的寬度或高度進行硬編碼? – joepetrakovich 2010-12-09 01:22:22