以编程方式设置布局
问题描述:
我为不同的布局创建了四个文件夹,以使我的应用程序支持所有屏幕。四个文件夹,即我创建的布局(默认),布局大,布局小,布局大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的情况下
现在,代码是正确的(我猜的),但是当我做的setContentView对于DisplayMetrics.DENSITY_HIGH它不需要我创建的文件夹(布局大)。
我的意思是,当我们输入setContentView的参数时,输入R.lay ...(点击ctrl +空格),它不会显示文件夹“layout-large”。
我想以编程方式设置布局。如果有人能帮助我,请。
答
你有这完全错误的。具有合格文件夹名称的要点是避免必须以编程方式完全处理它。 Android会自动处理它。此外,密度不等于屏幕尺寸,因此尝试将密度与不同的屏幕尺寸布局绑定是不正确的。
如果没有为不同的屏幕尺寸布局的区别并不是很大(真的,有不应是比平板式布局(布局sw600dp或布局sw720dp),你应该用最少的其他可以完成你的设计的布局数量。