2012-07-03 66 views
6

我已經搜索了一段時間,知道在開始設計Android應用程序之前應該考慮哪個屏幕分辨率。在設計android應用程序時應該考慮哪種屏幕分辨率?

我發現這些東西:

XLARGE屏幕至少960dp X 720dp

大屏幕至少640dp X 480dp

標準屏幕至少470dp X 320dp

小屏幕至少爲426dp x 320dp

Which device resolutions should be kept in mind when developing Android Apps?

但實際上這些都不是我想要的。

什麼,我想知道的是,我應該設計我的應用程序的每個分辨率或單獨採取的最常用的分辨率考慮

如果我沒有使用寬度,高度的任何硬編碼值和利潤率等,我從來不需要擔心屏幕分辨率

這是多麼好 - 找到該設備的寬度和高度使用的展示指標和創建所有視圖根據THES e值動態

+1

您應該將您的應用程序設計爲獨立於解決方案,即桌面和Web開發人員幾十年來的方式。 – CommonsWare

回答

7

我應該爲這些解決方案中的每一個設計我的應用程序還是僅考慮最常用的分辨率。

你應該確保你的應用程序正常工作的所有屏幕,而不僅僅是最流行的一種。我會從下往上開始......首先確保它在小屏幕/普通屏幕上正常工作(並且這樣做,確保它可以在所有屏幕上工作)。然後,你可以通過使用多窗格佈局。如果我沒有使用任何硬編碼值,寬度,高度和利潤率等優化佈局爲平板電腦等

,我從來不需要擔心的屏幕分辨率。

不知道你是想什麼在這裏說,但你應該總是警惕,通過使用dp(密度獨立像素)不同的屏幕分辨率,而不是px

使用顯示指標查找設備寬度和高度,並根據這些值動態創建所有視圖?

這應該是最後的手段。大多數情況下,你的佈局不會那麼複雜,而且也沒有必要。很多時候,你會使用wrap_contentmatch_parent設置寬度/高度,很多時候你會使用RelativeLayout s到空間相對於彼此的意見。如果您發現絕對必要,您只需確定視圖的寬度/高度即可。

+0

由第二點我的意思是... 。僅使用包裝內容,填充父項,匹配父項等。,而不是10dp/10px –

+1

您不應該使用'px',因爲它對於具有不同密度的設備來說效果不好。只要不是荒謬的,可以使用'dp'。即如果你有一個寬度爲20dp的按鈕,那麼在99%的情況下就完美了。您只需要注意邊界即,如果您將按鈕的寬度設置爲離開屏幕邊緣,那麼您就想要使用顯示度量來檢查屏幕的寬度,例如。但是,這再次不應該成爲一個問題。這是爲什麼簡單佈局w/less視圖讓你的生活變得簡單:) –

+0

好吧...所以單獨使用dp會解決我的問題嗎?...非常感謝 –

4

恕我直言,你應該總是編碼你的應用程序,使每個設備都支持。從這裏詳細介紹的啓動器圖標(不同的屏幕尺寸的不同分辨率):http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html到您的應用程序的佈局,應該這樣設計,以便相對於屏幕尺寸放置所有內容(通過使用諸如match_parent和wrap_content之類的屬性)。

您可以嘗試對其進行編碼,以便在發現屏幕大小後動態創建視圖,但我認爲它更容易,同樣有效地執行您的第一個想法!

+0

所以你正在闡述我的第二點嗎?如果我理解你的答案正確 –

+0

是的,這一個「如果我沒有使用任何硬編碼值,寬度,高度和利潤等,我從來不需要擔心屏幕分辨率」 – javajavajava

2

那麼,建議爲所有尺寸設計。但我知道這是一個很大的開銷。

所以你可以做的是設計你想要的最大的設備,並讓設備根據它們的尺寸調整圖像。不要使用硬編碼值。使用wrap_contentfill_parent

是的,動態調整圖像是一個好主意,儘管它需要更多的編碼。這是我使用的技術。

3

最好的辦法是讓屏幕寬度和高度動態的使用簡單的高度和寬度得到的參數。

DisplayMetrics displaymetrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
     int height = displaymetrics.heightPixels; 
     int wwidth = displaymetrics.widthPixels; 

其他選項是爲具有最高屏幕寬度和高度的設備創建它,然後針對各個屏幕尺寸在數學上處理它。