2014-03-04 61 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 –