2014-10-08 57 views
0

這是我的XML:AndroidPieChart不會顯示

<net.kenyang.piechart.PieChart 
    android:id="@+id/pieChart" 
    android:layout_below="@id/id_bar" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 

這是我用餅圖來被初始化代碼:

ArrayList<PieChartData> alPercentage = new ArrayList<PieChartData>(); 
    alPercentage.add(new PieChartData(55.0f, "1")); 
    alPercentage.add(new PieChartData(45.0f, "2")); 
    try { 
     // setting data 
     pieChart.setAdapter(alPercentage); 

     // setting a listener 
     pieChart.setOnSelectedListener(new PieChart.OnSelectedLisenter() { 
      @Override 
      public void onSelected(int iSelectedIndex) { 
       Toast.makeText(PSTravelStatisticsActivity.this, "Select index:" + iSelectedIndex, Toast.LENGTH_SHORT).show(); 
      } 
     }); 
     pieChart.setVisibility(View.VISIBLE); 
     pieChart.invalidate(); 
    } catch (Exception e) { 
     Log.i("","error is : " + e.getMessage()); 
     if (e.getMessage().equals(PieChart.ERROR_NOT_EQUAL_TO_100)){ 
      Log.e("kenyang", "percentage is not equal to 100"); 
     } 
    } 

現在,它並沒有給我一個錯誤 如果我嘗試以百分比小於100的方式進行設置,但會引發異常。這樣就意味着這個邏輯,它應該工作,但它確實給我2個數量級,但多數民衆贊成:

10-08 16:10:11.556 12591-12591/nl.hgrams.passenger I/net.kenyang.piechart.PieChart﹕ PieChart init 
10-08 16:10:11.626 12591-12591/nl.hgrams.passenger I/net.kenyang.piechart.PieChart﹕ onDraw 

回答

0

難道就這樣,然後它的工作:

final PieRenderer pieRenderer = pieChart.getRenderer(PieRenderer.class); 
     pieRenderer.setDonutSize((float) 75/100, PieRenderer.DonutMode.PERCENT); 
     selectDataType(); 
     pieChart.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if(pieRenderer.getContainingSegment(new PointF(event.getX(), event.getY())) == bikeS){ 
        segment = 0; 
        selectSegment(segment, true); 
       } 
       if(pieRenderer.getContainingSegment(new PointF(event.getX(), event.getY())) == carS){ 
        segment = 1; 
        selectSegment(segment, true); 
       } 
       if(pieRenderer.getContainingSegment(new PointF(event.getX(), event.getY())) == transitS){ 
        segment = 2; 
        selectSegment(segment, true); 
       } 
       if(pieRenderer.getContainingSegment(new PointF(event.getX(), event.getY())) == walkS){ 
        segment = 3; 
        selectSegment(segment, true); 
       } 
       return false; 
      } 
     }); 
    pieChart.removeSegment(carS); 
    pieChart.removeSegment(walkS); 
    pieChart.removeSegment(transitS); 
    pieChart.removeSegment(bikeS); 
    bikeS = new Segment("", tm.getBicycling()); 
       carS = new Segment("", tm.getDriving()); 
       transitS = new Segment("", tm.getTransit()); 
       walkS = new Segment("", tm.getWalking()); 
       pieChart.addSeries(bikeS, new SegmentFormatter(bikeCP, bikeCP, bikeCP, bikeCP)); 
       pieChart.addSeries(carS, new SegmentFormatter(carC, carC, carC, carC)); 
       pieChart.addSeries(transitS, new SegmentFormatter(transitC, transitC, transitC, transitC)); 
       pieChart.addSeries(walkS, new SegmentFormatter(walkC, walkC, walkC, walkC)); 
       typeText.setText(getString(R.string.bike)); 
       typePercent.setTextColor(getResources().getColor(R.color.bike_color)); 
       typeImage.setImageResource(R.drawable.profile_travel_mode_pie_bicycling); 
    pieChart.invalidate(); 
+0

不工作,我喜歡這 - 在github項目的問題上分享解決方案的任何機會? – RenegadeAndy 2014-11-25 10:27:34

+0

對不起,但我從那時起改變了我的工作空間,我無法再訪問該代碼:( – 2014-11-25 13:41:11