Android 通过代码创建布局

Android 通过代码创建布局,android,Android,我通过代码创建了布局,以便可以使用下面的代码在该布局上添加多个视图 public class AndroidPrepChart extends Activity { GraphicalView gView; GraphicalView gView2; GraphicalView gView3; BarChart barChart = new BarChart(); BarChart2 barChart2 = new BarChart2(); B

我通过代码创建了布局,以便可以使用下面的代码在该布局上添加多个视图

public class AndroidPrepChart extends Activity {

    GraphicalView gView;
    GraphicalView gView2;
    GraphicalView gView3;

    BarChart barChart = new BarChart();
    BarChart2 barChart2 = new BarChart2();
    BarChart3 barChart3 = new BarChart3();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        gView = barChart.execute2(this);
        gView2 = barChart2.execute2(this);
        gView3 = barChart3.execute2(this);

        LinearLayout layout = new LinearLayout(this);

        layout.addView(gView, 150, 200);
        layout.addView(gView2, 150, 200);
        layout.addView(gView3, 150, 150);

        setContentView(layout);

     }
}

这里输出屏幕包含三个图表,但我想把第三个图表放在第二行。请帮我解决这个问题。我是Android的初学者。

你完全确定不能使用XML吗?从代码中编写gui相当困难

关于你的问题: 我猜您希望第三个
GraphicalView
位于第二个视图的右侧

有两种方法: 使用
相对布局
或使用第二个
线性布局

例如:

LinearLayout layout = new LinearLayout(this);
layout.addView(gView, 150, 200);

LinearLayout two = new LinearLayout(this);
two.setOrientation(LinearLayout.VERTICAL);
two.addView(gView2, 150, 200);
two.addView(gView3, 150, 150);

layout.addView(two);
尝试不使用那种为
视图指定大小的方式,您应该使用
设置布局参数

例如,您的布局应该有如下内容:

layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

可以通过嵌套多个
LinearLayout
s并更改方向属性来实现这一点

在XML中,这看起来像这样(只显示相关的元素和属性):


嗨,克里斯邦尼,实际上它很好,它将所有的布局文件处理,但我没有得到成功。你能告诉我如何通过布局文件来实现吗。若这项工作是通过使用layoutfile完成的,那个么这意味着问题已经解决了。我正在通过代码获取GraphicalView,现在我想将其引用到layout文件。这样我可以控制其他布局参数,这是很难处理的代码。例如,如果我想设置布局参数layout_X和layou_Y,那么最好使用布局xml文件。请建议!任何建议都将不胜感激,如果需要进一步澄清,请告知。@shobhit:要使用布局文件,您需要从
活动的onCreate()方法调用
setContentView()
。我不知道你错过了什么。谢谢你的回复!我想为GraphicalView设置布局参数,如layout_X和layout_Y。你能告诉我怎么办吗?@shobhit:从密码里?使用
.setLayoutParams(新的LayoutParams(x,y))
<LinearLayout android:orientation="vertical">
    <LinearLayout android:orientation="horizontal">
        <!-- Your first 2 graphs go in this LinearLayour -->
    </LinearLayout>

    <LinearLayout android:orientation="horizontal">
        <!-- The third graph goes in here -->
    </LinearLayout>
</LinearLayout>
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);