Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android achartEngine how to highlight particular chart element

Hi i am using achartengine's pie-chart to represent my actual sales, now as my app starts one of the chart element in the piechart should get highlighted, like when we do the onclick on pie chart.

Below is the code for my piechart

final DefaultRenderer renderer = buildCategoryRenderer(colors);
       renderer.setPanEnabled(false);// Disable User Interaction
       renderer.setLabelsColor(Color.BLACK);
       renderer.setShowLegend(true);
       renderer.setLegendTextSize(20);
       renderer.setInScroll(true);
       renderer.setStartAngle(180);

     renderer.setChartTitle("Sales By Market Segment- Month");
       renderer.setLabelsTextSize(22);
      final CategorySeries categorySeries = new CategorySeries("Sales");
       categorySeries.add("Craft1",  cursor.getInt(1));
             categorySeries.add("product1", cursor.getInt(2) );
              categorySeries.add("product2",  cursor.getInt(3) );
              categorySeries.add("product",  cursor.getInt(4));
              categorySeries.add("product1", cursor.getInt(5));

      mChartView2=ChartFactory.getPieChartView(context, categorySeries,renderer);
      parent.addView(mChartView2);
      renderer.setClickEnabled(true);
      mChartView2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              SeriesSelection seriesSelection = mChartView2.getCurrentSeriesAndPoint();
              if (seriesSelection == null) {
                Toast.makeText(getActivity(), "No chart element selected", Toast.LENGTH_SHORT)
                    .show();
              }else {
                  for (int i = 0; i < categorySeries.getItemCount(); i++) {
                      renderer.getSeriesRendererAt(i).setHighlighted(i == seriesSelection.getPointIndex());
                    }
                  mChartView2.repaint();
                    Toast.makeText(
                        getActivity(),
                        "Chart data point index " + seriesSelection.getPointIndex() + " selected"
                            + " point value=" + seriesSelection.getValue(), Toast.LENGTH_SHORT).show();
                  }
                }
              });
      return ChartFactory.getPieChartIntent(context, categorySeries, renderer,null);
     }
     protected DefaultRenderer buildCategoryRenderer(int[] colors) {
      DefaultRenderer renderer = new DefaultRenderer();
      for (int color : colors) {
      SimpleSeriesRenderer r = new SimpleSeriesRenderer();
      r.setColor(color);
      renderer.addSeriesRenderer(r);

      }
      return renderer;
      }

products are getting highlighted when clicking but I want to highlight one product, when app starts.

like image 433
teekib Avatar asked Dec 05 '25 10:12

teekib


1 Answers

Found the solution:

 mChartView2=ChartFactory.getPieChartView(context, categorySeries,renderer);
      parent.addView(mChartView2);
      renderer.getSeriesRendererAt(0).setHighlighted(true);
      mChartView2.repaint();
like image 52
teekib Avatar answered Dec 07 '25 00:12

teekib



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!