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);