更新:全部完成! LinearLayout需要实际的高度和宽度 它。我确定我不应该添加它们,但至少它给了我 可以使用的东西。助教。我会自己回答这个但是我 显然没有足够的声誉,需要等待8 小时。我花了几天时间试图解决这个问题,发布问题和 在2小时内完成。 SOZ。
我认为我做错了什么。我看了一些例子,并认为我做的几乎是同样的事情 - 但显然不是。
更新:应该指出,我正在使用aChartEngine图形库将PieChartView添加到LinearLayout
我有一个方法
protected DefaultRenderer buildCategoryRenderer(int[] colors) {
if(renderer==null)
renderer = new DefaultRenderer();
renderer.setClickEnabled(true);
renderer.setZoomEnabled(true);
renderer.setSelectableBuffer(10);
renderer.setApplyBackgroundColor(true);
renderer.setBackgroundColor(Color.argb(100, 50, 50, 50));
renderer.setChartTitleTextSize(20);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
renderer.setMargins(new int[] { 20, 30, 15, 0 });
renderer.setZoomButtonsVisible(true);
renderer.setStartAngle(90);
for (int color : colors) {
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(color);
renderer.addSeriesRenderer(r);
}
return renderer;
}
在onCreate()中调用,如此
MyDataSource dataSource = new MyDataSource(this);
dataSource.open();
dataSet = new CategorySeries("Analysis");
int i = 0;
for(String category:categoriesArray){
dataSet.add(category, dataSource.getTotalForCategory(category).getNumbers().doubleValue());
colors[i]=listOfColours[i];
i++;
}
dataSource.close();
buildCategoryRenderer(colors);
然后在onResume()
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if(graph==null){
graph = ChartFactory.getPieChartView(this, dataSet, renderer);
LinearLayout graphLayout = (LinearLayout)findViewById(R.id.all_graph);
graphLayout.addView(graph, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}else{
graph.repaint();
}
}
这是我的xml布局
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" android:scrollbars="vertical">
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/summary_table" >
<LinearLayout android:id="@+id/all_graph"
android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1">
</LinearLayout>
<LinearLayout android:background="@android:drawable/list_selector_background" android:id="@+id/current_foo_row">
<TextView
android:id="@+id/foos_current_foo"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_marginTop="25dp"
android:layout_marginLeft="10dp"
android:text="@string/current"
android:layout_weight="0.50"
style="@android:style/TextAppearance.Holo.Medium"
android:textStyle="bold"
/>
<TextView
android:id="@+id/current_foo_value"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_marginTop="25dp"
android:layout_weight="0.4"
style="@android:style/TextAppearance.Holo.Medium"
android:textStyle="bold"/>
<ImageView
android:layout_width="0px"
android:layout_height="fill_parent"
android:src="@android:drawable/ic_menu_more"
android:contentDescription="@string/more"
android:layout_weight="0.1"/>
</LinearLayout>
<!-- Hidden bar in/Spend -->
<LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:visibility="gone" android:background="@drawable/back" android:id="@+id/bar_spend_row" style="@android:style/TextAppearance.DeviceDefault.Medium">
<TextView
android:id="@+id/bar_spend"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_marginLeft="10dp"
android:text="@string/bar_spend"
android:layout_weight="0.50"
style="@android:style/TextAppearance.Holo.Medium.Inverse"
/>
<TextView
android:id="@+id/bar_spend_value"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="0.50"
style="@android:style/TextAppearance.Holo.Medium.Inverse"/>
</LinearLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:visibility="gone" android:background="@drawable/back" android:id="@+id/bar_in_row" style="@android:style/TextAppearance.DeviceDefault.Medium">
<TextView
android:id="@+id/bar_in"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_marginLeft="10dp"
android:text="@string/bar_in"
android:layout_weight="0.50"
style="@android:style/TextAppearance.Holo.Medium.Inverse"/>
<TextView
android:id="@+id/bar_in_value"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="0.50"
style="@android:style/TextAppearance.Holo.Medium.Inverse"/>
</LinearLayout>
<!-- FINISH -->
<LinearLayout android:background="@android:drawable/list_selector_background" android:id="@+id/maybe_foo_row" style="@android:style/TextAppearance.DeviceDefault.Medium">
<TextView
android:id="@+id/foos_month_expected_foo"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_marginTop="25dp"
android:layout_marginLeft="10dp"
android:text="@string/expected"
android:layout_weight="0.50"
style="@android:style/TextAppearance.Holo.Medium"
android:textStyle="bold"
/>
<TextView
android:id="@+id/maybe_foo_value"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_marginTop="25dp"
android:layout_weight="0.4"
style="@android:style/TextAppearance.Holo.Medium"
android:textStyle="bold"/>
<ImageView
android:layout_width="0px"
android:layout_height="fill_parent"
android:src="@android:drawable/ic_menu_more"
android:contentDescription="@string/more"
android:layout_weight="0.1"/>
</LinearLayout>
<!-- Hidden bar in/Spend -->
<LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:visibility="gone" android:background="@drawable/back" android:id="@+id/remaining_spend_row" style="@android:style/TextAppearance.DeviceDefault.Medium">
<TextView
android:id="@+id/remaining_spend"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_marginLeft="10dp"
android:text="@string/remaining_spend"
android:layout_weight="0.50"
style="@android:style/TextAppearance.Holo.Medium.Inverse"/>
<TextView
android:id="@+id/remaining_spend_value"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="0.50"
style="@android:style/TextAppearance.Holo.Medium.Inverse"/>
</LinearLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="0px" android:visibility="gone" android:background="@drawable/back" android:id="@+id/remaining_in_row" style="@android:style/TextAppearance.DeviceDefault.Medium">
<TextView
android:id="@+id/remaining_in"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_marginLeft="10dp"
android:text="@string/remaining_in"
android:layout_weight="0.50"
style="@android:style/TextAppearance.Holo.Medium.Inverse"/>
<TextView
android:id="@+id/remaining_in_value"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="0.50"
style="@android:style/TextAppearance.Holo.Medium.Inverse"/>
</LinearLayout>
<!-- FINISH -->
<LinearLayout >
<Button
android:id="@+id/foos_add_transaction_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:text="@string/add_transaction"
android:layout_gravity="center_horizontal"
/>
</LinearLayout>
</TableLayout>
结果是图表没有显示。有什么想法吗?
答案 0 :(得分:0)
LinearLayout需要一个实际的高度和宽度。我确定我不需要添加它们,但至少它给了我一些工作。