2012-03-05 84 views
1

我目前正在編寫一個遠程控制程序來控制所有Android設備上的機器人。 我試圖顯示佈局以充分填充不同大小的屏幕。我第一次嘗試使用三星10.1平板電腦,它運行良好,但是當我將它移植到4.3英寸的較小設備時,佈局出錯。我正在考慮創建幾種佈局以適應不同的屏幕尺寸,但是如何根據屏幕尺寸檢查要設置的佈局? 我已經嘗試getwidth和getheight,但它只適用於你設置佈局。 如果可能,請給我一個簡短的示例代碼,因爲我對此很新。在所有設備上都有適當佈局的程序android

如果還有其他更好的方法,請給我建議。

請注意,我使用API​​級別8,android 2.2。

回答

1

經過thisthis。基本上,您可以爲各種屏幕創建佈局,每個屏幕都有相同的名稱。它們被放置在不同的文件夾中(每個文件夾根據風景,人像,屏幕密度和屏幕大小等因素命名)。 OS將自行決定使用哪種佈局。

+0

如果我使用這個,setContentView( R.layout.main); 我的文件夾名稱是佈局,xml被稱爲main。 您的意思是我爲稱爲「main.xml」的不同屏幕尺寸創建了不同的佈局,但將它放在名爲「layoutlarge」或「layoutsmall」的文件夾中?如果是這樣,我必須編輯setContentView? – 2012-03-05 07:43:43

+0

是的,那種。命名約定是不同的,比如「layout-xlarge」。請參閱鏈接。 例 - RES /佈局/ my_layout.xml //適用佈局正常屏幕尺寸( 「默認」) RES /佈局小/ my_layout.xml //適用佈局小屏幕尺寸 RES /佈局大/ my_layout.xml //適用於佈局大尺寸屏幕 RES /佈局XLARGE/my_layout.xml //適用於佈局超大屏幕尺寸 RES /佈局XLARGE土地/ my_layout.xml 同樣爲可繪製。 – gandharva 2012-03-05 07:57:51

+0

好的謝謝。但爲了確保鏈接中未提及的最後一件事,對於「setContentView(R.layout.main)」,我必須更改文件夾和xml文件的名稱嗎?或者我只是使用這個作爲標準的一個和Android會做我的變化? – 2012-03-05 08:34:49

0

This是一個很棒的文章。但總的來說,永遠不要期望屏幕是任何靜態大小。但是,如果您決定爲每種尺寸創建佈局,則不必擔心選擇最佳佈局,如果您提供相同佈局的多個版本,則android會爲您執行此操作。

+0

對不起,但您能詳細說明嗎? Android如何選擇最合適的佈局?我必須做些什麼才能發生? – 2012-03-05 07:39:44

+0

假設您使用XML編輯器創建佈局,可以選擇爲每個屏幕密度創建佈局。它將爲每個佈局創建新的XML文件,就像它爲位圖所做的一樣,以支持每種屏幕密度(對於低密度,中等密度和高密度),Android會根據屏幕密度對它們進行更改。 – Ruuhkis 2012-03-05 07:44:37

+1

Android用於選擇最佳佈局(或任何資源)的過程如下所述:http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch – Sparky 2012-03-05 08:35:17

相關問題