2012-01-25 14 views
0

我在爲我的應用程序創建通用佈局時遇到了麻煩。正如預期的那樣,它可以用於各種設備,我希望它能夠爲每個設備正常工作。有幾種方法來實現這個問題,但我想創建一個XML文件(類似於web.config文件),並在我的應用程序的一開始我想要設備的屏幕寬度和高度,並計算每個控件的(textview,微調,按鈕等)屬性(如邊距,填充,寬度,高度...)根據此寬度和高度,並將這些計算值保存到我的xml文件中。最後,我希望從佈局xmls中獲得這些值,這樣我的佈局視覺將獨立於設備,並且可以針對每個設備正常工作。這可以實現嗎?我無法在互聯網上找到任何類似的解決方案。誰能幫我?Android - 如何創建儘可能通用的佈局?

在此先感謝。

+2

我不明白這比使用RelativeLayout更好... – onit

+0

你沒有考慮到大多數android設備可以切換屏幕方向。 – nfechner

回答

2

您可以使用RelativeLayout和類似的機制來完成大部分工作,而無需使用硬編碼值。這兩個通過動態佈局系統正是你所描述的。

但是,當您需要更具體時,這就是動態資源系統可以幫助您的地方。對於您在res/drawable,res/layout,res/values等中定義的所有內容,您可以通過使用正確的格式限定同級目錄來定義設備方向,像素密度,屏幕大小甚至語言的特定實現。在不同文件夾中提供具有相同名稱的資源,系統將根據運行時環境決定使用哪一個資源。

這給看看:

http://developer.android.com/guide/topics/resources/providing-resources.html

1

我不會用自定義的測量動態設置佈局參數。 Android專門爲您提供了各種功能(包括提供多個圖像資源或特定於屏幕大小的佈局)。

我發現越多地嘗試用硬編碼值自定義Android佈局(如果您確實需要設置特定參數,則始終使用DP)。底線,你不應該試圖重新發明車輪,而只是使用Android已經內置的設計良好的功能來完成你想要的功能。