2012-12-04 65 views
0

我想我的應用程序在不同屏幕尺寸完美運行,的Galaxy Tab 2Galaxy Note的800的Galaxy Note 2設計爲不同的屏幕 - 的Android

但是,我的應用程序相當複雜,我不能在所有地方使用wrap_contentfill_parent。我試過使用layout_weight,但即使這樣也不能用於RelativeLayout

是否有調整屏幕組件取決於不是讓不同的佈局都在一起爲Android documentation建議,是有什麼辦法可以使用RelativeLayoutlayout_weight其他屏幕尺寸的任何智能的方式?

謝謝!

+3

你可以參考我的努力和幾乎工作正常http://stackoverflow.com/questions/12242111/application-skeleton-to-support-multiple-screen –

+0

首先你設計你的應用程序的正常佈局,並使文件夾在資源文件夾layout-mdpi,layout-hdpi等。 – Hemant

+0

@hotveryspicy感謝哥們。你的文章真的有幫助! – gauravsapiens

回答

0

我發現一個有效的方式。

而不是在佈局中硬編碼維度我使用它們在Resources/values/dimensions.xml中的引用。因此,對於不同的屏幕尺寸,我只是在資源中製作了不同的尺寸文件,從而降低了複雜性並避免爲所有屏幕尺寸製作單獨的佈局。

0

這是真的,你不能在相對佈局中使用重量。如果你想確保你的佈局能夠完美地運行每個設備。您必須使用帶有視圖的嵌套LinearLayouts,如果您的每個設備都有良好的分辨率圖像,那麼您的用戶界面將會非常完美。

此外在RelativeLayout複雜的佈局不能完美,因爲你不能使用重量,有時圖像可能會傾斜或拉伸。

當然,使用帶有視圖的嵌套LinearLayouts會增加一些額外的行,但這是唯一完美的解決方案。

+0

使用嵌套佈局會使用更多資源並增加複雜性,而不是優化的解決方案。 來源:http://developer.android.com/training/improving-layouts/optimizing-layout.html – gauravsapiens

+0

@ Infinity在同一個文檔中提到嵌套佈局總共花費的時間爲3.861ms,總時間爲簡單佈局是2.854,即繪製UI的差異僅爲1毫秒,如果不能包含1毫秒,則不能在不使用重量和嵌套的情況下製作複雜的平鋪。 –

1

您可以使用TableLayoutTableRow。在我的一個項目中,我更喜歡使用RelativeLayout,因爲RelativeLayout不像您所說的那樣支持weight屬性。

+0

我的應用程序相當複雜,TableLayout無法彌補RelativeLayout。不管怎麼說,還是要謝謝你 ! – gauravsapiens