2013-02-20 97 views
0

我为不同的布局创建了四个文件夹,以使我的应用程序支持所有屏幕。四个文件夹,即我创建的布局(默认),布局大,布局小,布局大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”。

我想以编程方式设置布局。如果有人能帮助我,请。

回答

1

你有这完全错误的。具有合格文件夹名称的要点是避免必须以编程方式完全处理它。 Android会自动处理它。此外,密度不等于屏幕尺寸,因此尝试将密度与不同的屏幕尺寸布局绑定是不正确的。

如果没有为不同的屏幕尺寸布局的区别并不是很大(真的,有不应是比平板式布局(布局sw600dp或布局sw720dp),你应该用最少的其他可以完成你的设计的布局数量。