2011-04-05 62 views
8

我有一個android應用程序,我想知道是否可以在橫向和縱向模式下都有1個佈局(1個佈局xml文件)。但是我想爲每種模式提供不同的背景?那可能嗎?我需要2個XML文件點到不同的背景圖片嗎?或者我可以實現我想要使用1個XML文件?如何在橫向模式和縱向模式之間使用2種不同的背景

謝謝。

回答

10

如果你願意用代碼來實現這一點,你可以嘗試將像

View view = (View) findViewById(R.id.background_carrying_view); 
int orientation = getResources().getConfiguration().orientation; 
if(orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    view.setBackgroundResource (R.drawable.background_land); 
} else { 
    view.setBackgroundResource (R.drawable.background_port); 
} 

東西到你的onCreate()和/或onConfigurationChange()。

使用此方法,您可以對橫向和縱向使用相同的佈局。

+1

這有效,但我個人使用'查看視圖= this.getWindow()。getDecorView();' – Squonk 2011-04-05 22:17:31

+0

哦,是的。你是對的。 – Cephron 2011-04-06 03:22:50

+0

你總是可以定義兩個單獨的xml佈局。一個用於肖像,另一個用於景觀。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2012-02-12 10:18:23

19

我已經通過創建drawable-land-hdpi文件夾並將我的風景背景複製到其中。

我不想改變我的代碼,我只是有一個XML佈局文件和兩個不同的background.jpg圖像在兩個文件夾繪製,陸,華電國際繪製,華電國際

+6

只要有人遇到相同的問題:爲了使用它,你一定不能有android:configChanges =「orientation」,否則當前活動不會被銷燬,並且資源會從相應的目錄重新初始化......這裏是您可以使用的所有修飾符的描述http://developer.android.com/guide /topics/resources/providing-resources.html – 2012-06-04 13:54:06

+0

android:configChanges =「orientation」在您的活動的清單中設置 – 2014-01-17 04:32:03

+0

完美的工作 - 謝謝! – mpemburn 2014-03-01 15:03:43

相關問題