2012-11-19 117 views
2

我有一個簡單的問題,似乎有兩個簡單的解決方案,這兩個都不適合我,我似乎無法理解爲什麼。根據方向改變背景圖像。

我想有一個肖像視圖背景和我的佈局的替代景觀背景。我將不同的圖像分別放置在單獨的文件夾佈局和layout-land中。

肖像=正是它應該 景觀=黑屏

然後我試圖使一個名爲繪製土地文件夾,並把寬視野背景存在。 同樣的結果。

黑色時去肖像。

有什麼遺失的東西?這似乎很簡單,我不明白我可能做錯了什麼。

在此先感謝。

回答

3

要通過編程改變你的背景取決於屏幕的方向:

 @Override 
    public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    LinearLayout linearLayout = (LinearLayout)findViewById(R.id.layout); 
    Resources res = getResources(); 
    Drawable portrait = res.getDrawable(R.drawable.portrait); 
    Drawable landscape = res.getDrawable(R.drawable.landscape); 

    WindowManager window = (WindowManager)getSystemService(WINDOW_SERVICE); 
    Display display = window.getDefaultDisplay(); 
    int num = display.getRotation(); 
    if (num == 0){ 
     linearLayout.setBackgroundDrawable(portrait); 
    }else if (num == 1 || num == 3){ 
     linearLayout.setBackgroundDrawable(landscape); 
    }else{ 
     linearLayout.setBackgroundDrawable(portrait); 
    } 
    } 

嘗試了這一點,我希望它能幫助!

+0

現在編碼...等待它建立。 FC第一次,我想因爲我離開了「在XML中設置的android:background屬性感謝你的快速反應! – TheRedStig

+0

不再FC了,也許是因爲圖片仍然在drawable-port和drawable中,土地?顯然我仍然宣佈他們在Java中,但多數民衆贊成在所有我能想到的... – TheRedStig

+0

好吧,所以改變了本地,所以都在可繪製的文件夾,現在我回到獲取景觀模式的黑屏... ..可以風景圖像太大或什麼東西? – TheRedStig

0

確保兩個圖像文件具有相同的名稱,即使這些文件包含不同的圖像。例如,如果有一個名爲中都繪製土地和繪製端口文件夾「background01.png」的圖像,下面的工作:基於方向

<ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scaleType="fitXY" 
      android:src="@drawable/background01" />