我通过代码创建布局,以便我可以使用下面的代码在该布局上添加多个视图。
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的初学者。
答案 0 :(得分:2)
您可以通过嵌套多个LinearLayout
并更改方向属性
<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>
您可以使用setOrientation method以编程方式操纵LinearLayout
的方向。 E.g:
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
答案 1 :(得分:0)
您完全确定不能使用XML吗?从代码中编码gui要困难得多。
关于你的问题:
我想你希望第三个GraphicalView
位于第二个RelativeLayout
的右边。
两种方法:
使用LinearLayout
或使用第二个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);
。
示例:
View
尽量不要使用setLayoutParams
给出尺寸的方式,您应该使用layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
。
例如,您的布局应该具有以下内容:
{{1}}