public class ChartActivity extends Activity {
private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT;
private final int FP = ViewGroup.LayoutParams.FILL_PARENT;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//1.定义线性布局
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
//2.表格布局控件===
TableLayout tableLayout = (TableLayout)findViewById(R.id.tableLayout);
// tableLayout.setStretchAllColumns(true);
for(int row=0;row<10;row++)
{
TableRow tableRow=new TableRow(this);
for(int col=0;col<8;col++)
{
TextView tv=new TextView(this);
tv.setText("("+col+","+row+")");
tableRow.addView(tv);
}
tableLayout.addView(tableRow, new TableLayout.LayoutParams(FP, WC));
}
//=====
//3.定义曲线图====
String[] titles = new String[] { "First", "Second"};
List<double[]> x = new ArrayList<double[]>();
List<double[]> y = new ArrayList<double[]>(); x.add(new double[] { 1, 3, 5, 7, 9, 11} );
x.add(new double[] { 0, 2, 4, 6, 8, 10} ); y.add(new double[] { 3, 14, 5, 30, 20, 25});
y.add(new double[] { 18, 9, 21, 15, 10, 6});
XYMultipleSeriesDataset dataset = buildDataset(titles, x, y); int[] colors = new int[] { Color.BLUE, Color.GREEN};
PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.DIAMOND};
XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles, true);
setChartSettings(renderer, "Line Chart Demo", "X", "Y", -1, 12, 0, 35 , Color.WHITE, Color.WHITE);
View chart = ChartFactory.getLineChartView(this, dataset, renderer);
//=======
layout.addView(chart, 500, 400);
layout.addView(tableLayout, 500, 400);
setContentView(layout);
} protected XYMultipleSeriesDataset buildDataset(String[] titles,
List<double[]> xValues,
List<double[]> yValues)
{
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); int length = titles.length; //有几条线
for (int i = 0; i < length; i++)
{
XYSeries series = new XYSeries(titles[i]); //根据每条线的名称创建
double[] xV = (double[]) xValues.get(i); //获取第i条线的数据
double[] yV = (double[]) yValues.get(i);
int seriesLength = xV.length; //有几个点 for (int k = 0; k < seriesLength; k++) //每条线里有几个点
{
series.add(xV[k], yV[k]);
} dataset.addSeries(series);
} return dataset;
} protected XYMultipleSeriesRenderer buildRenderer(int[] colors, PointStyle[] styles, boolean fill)
{
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
int length = colors.length;
for (int i = 0; i < length; i++)
{
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(colors[i]);
r.setPointStyle(styles[i]);
r.setFillPoints(fill);
renderer.addSeriesRenderer(r);
}
return renderer;
} protected void setChartSettings(XYMultipleSeriesRenderer renderer, String title,
String xTitle,String yTitle, double xMin,
double xMax, double yMin, double yMax,
int axesColor,int labelsColor)
{
renderer.setChartTitle(title);
renderer.setXTitle(xTitle);
renderer.setYTitle(yTitle);
renderer.setXAxisMin(xMin);
renderer.setXAxisMax(xMax);
renderer.setYAxisMin(yMin);
renderer.setYAxisMax(yMax);
renderer.setAxesColor(axesColor);
renderer.setLabelsColor(labelsColor);
}
}
1.我定义了一个线性布局
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);2.表格布局
TableLayout tableLayout = (TableLayout)findViewById(R.id.tableLayout);
tableLayout.addView(tableRow, new TableLayout.LayoutParams(FP, WC)); 3.一个View 曲线图
View chart = ChartFactory.getLineChartView(this, dataset, renderer);最后
layout.addView(chart, 500, 400);
layout.addView(tableLayout, 500, 400);
setContentView(layout); 最后不能显示,但是表格和曲线视图是可以单独正常显示的,现在要把他们放在一个Activity中,就有问题了
报空指向异常的错误
请高手指点
private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT;
private final int FP = ViewGroup.LayoutParams.FILL_PARENT;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//1.定义线性布局
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
//2.表格布局控件===
TableLayout tableLayout = (TableLayout)findViewById(R.id.tableLayout);
// tableLayout.setStretchAllColumns(true);
for(int row=0;row<10;row++)
{
TableRow tableRow=new TableRow(this);
for(int col=0;col<8;col++)
{
TextView tv=new TextView(this);
tv.setText("("+col+","+row+")");
tableRow.addView(tv);
}
tableLayout.addView(tableRow, new TableLayout.LayoutParams(FP, WC));
}
//=====
//3.定义曲线图====
String[] titles = new String[] { "First", "Second"};
List<double[]> x = new ArrayList<double[]>();
List<double[]> y = new ArrayList<double[]>(); x.add(new double[] { 1, 3, 5, 7, 9, 11} );
x.add(new double[] { 0, 2, 4, 6, 8, 10} ); y.add(new double[] { 3, 14, 5, 30, 20, 25});
y.add(new double[] { 18, 9, 21, 15, 10, 6});
XYMultipleSeriesDataset dataset = buildDataset(titles, x, y); int[] colors = new int[] { Color.BLUE, Color.GREEN};
PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.DIAMOND};
XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles, true);
setChartSettings(renderer, "Line Chart Demo", "X", "Y", -1, 12, 0, 35 , Color.WHITE, Color.WHITE);
View chart = ChartFactory.getLineChartView(this, dataset, renderer);
//=======
layout.addView(chart, 500, 400);
layout.addView(tableLayout, 500, 400);
setContentView(layout);
} protected XYMultipleSeriesDataset buildDataset(String[] titles,
List<double[]> xValues,
List<double[]> yValues)
{
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); int length = titles.length; //有几条线
for (int i = 0; i < length; i++)
{
XYSeries series = new XYSeries(titles[i]); //根据每条线的名称创建
double[] xV = (double[]) xValues.get(i); //获取第i条线的数据
double[] yV = (double[]) yValues.get(i);
int seriesLength = xV.length; //有几个点 for (int k = 0; k < seriesLength; k++) //每条线里有几个点
{
series.add(xV[k], yV[k]);
} dataset.addSeries(series);
} return dataset;
} protected XYMultipleSeriesRenderer buildRenderer(int[] colors, PointStyle[] styles, boolean fill)
{
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
int length = colors.length;
for (int i = 0; i < length; i++)
{
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(colors[i]);
r.setPointStyle(styles[i]);
r.setFillPoints(fill);
renderer.addSeriesRenderer(r);
}
return renderer;
} protected void setChartSettings(XYMultipleSeriesRenderer renderer, String title,
String xTitle,String yTitle, double xMin,
double xMax, double yMin, double yMax,
int axesColor,int labelsColor)
{
renderer.setChartTitle(title);
renderer.setXTitle(xTitle);
renderer.setYTitle(yTitle);
renderer.setXAxisMin(xMin);
renderer.setXAxisMax(xMax);
renderer.setYAxisMin(yMin);
renderer.setYAxisMax(yMax);
renderer.setAxesColor(axesColor);
renderer.setLabelsColor(labelsColor);
}
}
1.我定义了一个线性布局
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);2.表格布局
TableLayout tableLayout = (TableLayout)findViewById(R.id.tableLayout);
tableLayout.addView(tableRow, new TableLayout.LayoutParams(FP, WC)); 3.一个View 曲线图
View chart = ChartFactory.getLineChartView(this, dataset, renderer);最后
layout.addView(chart, 500, 400);
layout.addView(tableLayout, 500, 400);
setContentView(layout); 最后不能显示,但是表格和曲线视图是可以单独正常显示的,现在要把他们放在一个Activity中,就有问题了
报空指向异常的错误
请高手指点
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货