我正在开发一个Android应用程序,它导致我的设备有1024宽度尺寸的问题。我已经尝试创建布局文件夹布局-W1024和布局-mdpi-sw1024dp;但该设备改为使用layout-mdpi文件夹。我使用15作为最低的Android版本。独立的1024个宽度的设备
有没有其他方式可以使用我可以分开1024个设备?
我正在开发一个Android应用程序,它导致我的设备有1024宽度尺寸的问题。我已经尝试创建布局文件夹布局-W1024和布局-mdpi-sw1024dp;但该设备改为使用layout-mdpi文件夹。我使用15作为最低的Android版本。独立的1024个宽度的设备
有没有其他方式可以使用我可以分开1024个设备?
如果它适用于您的项目,您可以通过编程的方式来实现,像这样的事情会根据屏幕的尺寸调用不同的布局。这有一些限制,因为它只能从一个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);
一样,我只是试过这段代码,size.x给了我455而不是1024?我需要做一些计算吗?对不起,我是新手。 – user782400
我已经为你更新了我的答案user782400 –
该设备是1024 ...? mdpi tablet布局文件夹的正确名称是layout-swXYZdp-mdpi,其中XYZ是最小宽度(因此:1024 * 600 => XYZ是600,而不是1024) –
我有sw600dp-mdpi和sw768dp-mdpi文件夹;但布局文件仍然来自layout-mdpi文件夹。我不知道为什么会发生这种情况。 – user782400
你尝试过 - 陆地和港口的变化?因为我的默认值是-port(所以它会默认为mdpi文件夹,如果没有找到),而我猜测你主要是在内地使用它。 –