2014-03-04 86 views
1

我正在開發一個Android應用程序,它導致我的設備有1024寬度尺寸的問題。我已經嘗試創建佈局文件夾佈局-W1024和佈局-mdpi-sw1024dp;但該設備改爲使用layout-mdpi文件夾。我使用15作爲最低的Android版本。獨立的1024個寬度的設備

有沒有其他方式可以使用我可以分開1024個設備?

+0

該設備是1024 ...? mdpi tablet佈局文件夾的正確名稱是layout-swXYZdp-mdpi,其中XYZ是最小寬度(因此:1024 * 600 => XYZ是600,而不是1024) –

+0

我有sw600dp-mdpi和sw768dp-mdpi文件夾;但佈局文件仍然來自layout-mdpi文件夾。我不知道爲什麼會發生這種情況。 – user782400

+0

你嘗試過 - 陸地和港口的變化?因爲我的默認值是-port(所以它會默認爲mdpi文件夾,如果沒有找到),而我猜測你主要是在內地使用它。 –

回答

0

如果它適用於您的項目,您可以通過編程的方式來實現,像這樣的事情會根據屏幕的尺寸調用不同的佈局。這有一些限制,因爲它只能從一個Activity中調用(在你的情況下不應該是一個問題),並且如果你在整個應用程序中遇到佈局問題,它可能不是很有伸縮性。

有條件的width == 1024可能應該被更大或更具體​​的東西替代,你需要玩一會兒才能使它工作。您還應該考慮屏幕的高度,而不僅僅是寬度。

Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 
int width = size.x; 

或者,如果你想讓它以像素爲單位而不是:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
int width = metrics.widthPixels; 

然後:

//Depending on the width, set one layout or anotherone 
setContentView(width == 1024?R.layout.for1024:R.layout.normal); 

Source

+0

一樣,我只是試過這段代碼,size.x給了我455而不是1024?我需要做一些計算嗎?對不起,我是新手。 – user782400

+0

我已經爲你更新了我的答案user782400 –