achartengine 饼图未在滚动视图中呈现
achartengine pie chart not rendered in scrollview
我在显示由 achartengine
创建的 pie chart
时遇到问题。
我的布局XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".StatisticActivity" >
<bc.qz.client.android.custom.view.RoundRectTransparentPanel
android:id="@+id/statisticTransparentPanel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="20dip"
android:orientation="vertical"
android:padding="10dip" >
<ScrollView
android:id="@+id/statisticPageTransparentPanelScrollView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fillViewport="true" >
<LinearLayout
android:id="@+id/chart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
</bc.qz.client.android.custom.view.RoundRectTransparentPanel>
</RelativeLayout>
我的Activity:
@Override
protected void onResume() {
super.onResume();
LinearLayout layout=(LinearLayout)findViewById(R.id.chart);
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.WHITE);
mRenderer.setChartTitleTextSize(20);
mRenderer.setLabelsTextSize(15);
mRenderer.setLabelsColor(Color.BLACK);
mRenderer.setLegendTextSize(15);
mRenderer.setShowLegend(false);
mRenderer.setMargins(new int[] { 20, 30, 15, 0 });
mRenderer.setZoomButtonsVisible(false);
mRenderer.setStartAngle(90);
mRenderer.setInScroll(true);
fillPieChart();
if (mChartView == null) {
mChartView = ChartFactory.getPieChartView(this, mSeries, mRenderer);
mRenderer.setClickEnabled(true);
mRenderer.setSelectableBuffer(10);
layout.addView(mChartView);
} else {
mChartView.repaint();
}
}
public void fillPieChart() {
for (int i = 0; i < pieChartValues.length; i++) {
mSeries.add(" Share Holder " + (mSeries.getItemCount() + 1),
pieChartValues[i]);
SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();
renderer.setColor(COLORS[(mSeries.getItemCount() - 1)
% COLORS.length]);
mRenderer.addSeriesRenderer(renderer);
if (mChartView != null)
mChartView.repaint();
}
}
没有异常,没有日志消息,但所有对象都已正确创建。我得到的是:
我的 scrollview
中没有显示 chart
。
有人可以给我提示吗?
谢谢
斯特凡
我在另一个问题中找到了答案。
我改变了这一行
layout.addView(mChartView);
至此
layout.addView(mChartView, new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 500));
现在可以使用了...
我在显示由 achartengine
创建的 pie chart
时遇到问题。
我的布局XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".StatisticActivity" >
<bc.qz.client.android.custom.view.RoundRectTransparentPanel
android:id="@+id/statisticTransparentPanel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="20dip"
android:orientation="vertical"
android:padding="10dip" >
<ScrollView
android:id="@+id/statisticPageTransparentPanelScrollView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fillViewport="true" >
<LinearLayout
android:id="@+id/chart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
</bc.qz.client.android.custom.view.RoundRectTransparentPanel>
</RelativeLayout>
我的Activity:
@Override
protected void onResume() {
super.onResume();
LinearLayout layout=(LinearLayout)findViewById(R.id.chart);
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.WHITE);
mRenderer.setChartTitleTextSize(20);
mRenderer.setLabelsTextSize(15);
mRenderer.setLabelsColor(Color.BLACK);
mRenderer.setLegendTextSize(15);
mRenderer.setShowLegend(false);
mRenderer.setMargins(new int[] { 20, 30, 15, 0 });
mRenderer.setZoomButtonsVisible(false);
mRenderer.setStartAngle(90);
mRenderer.setInScroll(true);
fillPieChart();
if (mChartView == null) {
mChartView = ChartFactory.getPieChartView(this, mSeries, mRenderer);
mRenderer.setClickEnabled(true);
mRenderer.setSelectableBuffer(10);
layout.addView(mChartView);
} else {
mChartView.repaint();
}
}
public void fillPieChart() {
for (int i = 0; i < pieChartValues.length; i++) {
mSeries.add(" Share Holder " + (mSeries.getItemCount() + 1),
pieChartValues[i]);
SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();
renderer.setColor(COLORS[(mSeries.getItemCount() - 1)
% COLORS.length]);
mRenderer.addSeriesRenderer(renderer);
if (mChartView != null)
mChartView.repaint();
}
}
没有异常,没有日志消息,但所有对象都已正确创建。我得到的是:
我的 scrollview
中没有显示 chart
。
有人可以给我提示吗?
谢谢 斯特凡
我在另一个问题中找到了答案。
我改变了这一行
layout.addView(mChartView);
至此
layout.addView(mChartView, new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 500));
现在可以使用了...