我为不同的布局创建了四个文件夹,以使我的应用程序支持所有屏幕。四个文件夹,即布局(默认),布局大,布局小,布局-xlarge,我已经创建。在所有这些内部中,我放置了一个名为“activity_start.xml”的xml文件。现在,我想使用startActivity.java中的以下代码以编程方式设置布局:
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
switch(displayMetrics.densityDpi)
{
case DisplayMetrics.DENSITY_LOW:
// layout for small sized devices.
break;
case DisplayMetrics.DENSITY_MEDIUM:
// layout for medium-sized devices.
setContentView(R.layout.activity_start);
break;
case DisplayMetrics.DENSITY_HIGH:
// layout for big-sized devices.
setContentView(R.layout-large.activity_start);//<----------- syntax error in this line
break;
}
现在在 DisplayMetrics.DENSITY_MEDIUM 的情况下,代码是正确的(我猜),但是当我为 DisplayMetrics.DENSITY_HIGH 执行setContentView时,它不会占用该文件夹我创建了(layout-large)。
我的意思是,当我们输入setContentView的参数,键入R.lay ...(点击ctrl + space)时,它不会显示文件夹“layout-large”。
我想以编程方式设置布局。如果有人可以帮助我,请。
答案 0 :(得分:1)
你完全错了。拥有合格文件夹名称的重点是避免必须以编程方式完全处理它。 Android会自动处理此问题。此外,密度不等于屏幕尺寸,因此您尝试将密度与不同的屏幕尺寸布局联系起来是不正确的。
如果不同屏幕尺寸的布局之间没有重大差异(实际上,不应该不是平板电脑类型布局(layout-sw600dp或layout-sw720dp)你应使用尽可能少的布局来完成您的设计。