안녕하세요-

책을 보면서 예제 문제들을 가지고 메뉴를 만들어서 하려고 하는데

1.리스트 뷰 출력

2.파이차트 출력

할려고 합니다.

 

1번은 되는데 2번이 안되더라구요-

왜 안되는지 모르겠습니다.

2번의 경우에는 독립적으로 할때는 분명 잘 되는데

메뉴에 넣어서 할려니까 안되네요 ㅠ

 achartengine 라이브러리는 이용해서 만들구요

소스는 다음과 같습니다.

 public class chart extends Activity {
 private chartView mChartView;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.graph);
  
  LinearLayout dynamicLayout = (LinearLayout)findViewById(R.id.layout);
        mChartView = new chartView(this);
        dynamicLayout.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
        mChartView.makeChart();
 }
}
 public class chartView extends View{
 
 private PieChart mPieChart = null;
 private chart parent;
 
 public chartView(Context context)
 {
  super(context);
  setFocusable(true);
  parent = (chart)context;
 }
 public chartView(Context context,AttributeSet attrs)
 {
  super(context,attrs);
  setFocusable(true);
  parent = (chart)context;
 }
 public chartView(Context context,AttributeSet attrs, int defaultStyle)
 {
  super(context, attrs, defaultStyle);
  setFocusable(true);
  parent = (chart)context;
 }
 @Override
 protected void onDraw(Canvas canvas)
 {
  int width = getMeasuredWidth();
  int height = getMeasuredHeight();
  
  if(mPieChart != null) mPieChart.draw(canvas,0,0,width,height, null);
 }
 public void makeChart()
 {
  //value color text
  double[] values = new double[] {10, 20, 30, 40};
  int [] colors = new int[] {Color.CYAN,Color.MAGENTA,Color.RED,Color.YELLOW};
  String[] texts = new String[] {"SAMPLE1", "SAMPEL2", "SAMPLE3", "SAMPLE4" };
  
  DefaultRenderer renderer = new DefaultRenderer();//색깔 관련 부분
  for(int color : colors){
   SimpleSeriesRenderer ssr = new SimpleSeriesRenderer();
   ssr.setColor(color);
   renderer.addSeriesRenderer(ssr);
  }
  CategorySeries series = new CategorySeries("Project budget"); //카테고리에 관련 텍스트와 값을 저장
  int count = 0;
     for (double value : values) {
      series.add(texts[count++], value);
     }
  mPieChart = new PieChart(series, renderer);
  
  invalidate();
 }
}