android - Change color of selected bar in Achartengine -


i have change color of particular bar selected user in bar chart. when ever user select bar want change color of bar , again if user change selection of bar last selected bar show default color.

note: saw in 1 post have use 1 more series contain selected bar can achieve that. need sample code understand that.

private string[] mmonth = new string[] { "january", "feburary", "march", "april", "may", "june", "july", "aug", "sep", "oct", "nov", "dec" }; int[] x = { 0, 1, 2, 3, 4, 5, 6, 7 }; int[] income = { 2000, 2500, 2700, 3000, 2800, 3500, 3700, 3800 }; public static final string type = "type"; private xymultipleseriesdataset mdataset = getdemodataset(); private xymultipleseriesrenderer mrenderer = getdemorenderer(); private graphicalview mchartview;    protected void oncreate(bundle savedinstancestate) {     // todo auto-generated method stub     super.oncreate(savedinstancestate);     setcontentview(r.layout.xy_chart);     if (mchartview == null) {         linearlayout layout = (linearlayout) findviewbyid(r.id.chart);         mchartview = chartfactory.getbarchartview(this, mdataset, mrenderer, type.default);         mrenderer.setselectablebuffer(100);         layout.addview(mchartview, new layoutparams(layoutparams.match_parent, layoutparams.match_parent));     } else {         mchartview.repaint();     }      mchartview.setonclicklistener(new view.onclicklistener() {          @override         public void onclick(view v) {             // todo auto-generated method stub             // handle click event on chart               seriesselection seriesselection = mchartview.getcurrentseriesandpoint();               if (seriesselection == null) {                 toast.maketext(newtest.this, "no chart element", toast.length_short).show();               } else {                       (int = 0; < x.length; i++) {                       simpleseriesrenderer renderer = mrenderer.getseriesrendererat(seriesselection.getseriesindex());                       renderer.setcolor(color.red);                       }                       mchartview.repaint();                  // display information of clicked point                 toast.maketext(                         newtest.this,                     "chart element in series index " + seriesselection.getseriesindex()                         + " data point index " + seriesselection.getpointindex() + " clicked"                         + " closest point value x=" + seriesselection.getxvalue() + ", y="                         + seriesselection.getvalue(), toast.length_short).show();               }         }     });  }   private xymultipleseriesdataset getdemodataset() {          xyseries incomeseries = new xyseries("income");         (int = 0; < x.length; i++) {             incomeseries.add(i, income[i]);         }          xymultipleseriesdataset dataset = new xymultipleseriesdataset();         dataset.addseries(incomeseries);         return dataset;      }   private xymultipleseriesrenderer getdemorenderer() {         xyseriesrenderer incomerenderer =  new xyseriesrenderer();         incomerenderer.setcolor(color.rgb(130, 130, 230));         incomerenderer.setfillpoints(true);         incomerenderer.setlinewidth(2);         incomerenderer.setchartvaluestextalign(align.center);         incomerenderer.setchartvaluesspacing(15);         incomerenderer.setdisplaychartvalues(true);          xymultipleseriesrenderer multirenderer = new xymultipleseriesrenderer();         multirenderer.setxlabels(0);         multirenderer.setylabelspadding(15);         multirenderer.setbarspacing(0.3f);         multirenderer.setbarwidth(30);         multirenderer.setcharttitle("income chart");         multirenderer.setxtitle("year 2013");         multirenderer.setytitle("amount in dollars");         //multirenderer.setzoomlimits(1.0,0.7,1.0,3000.0);         multirenderer.setzoombuttonsvisible(true);         //multirenderer.setzoomenabled(true, true);         //multirenderer.setpanenabled(true, true);         multirenderer.setinscroll(true);         multirenderer.setxaxismin(-0.5);         multirenderer.setxaxismax(7);         multirenderer.setyaxismin(0);         multirenderer.setyaxismax(4000);          multirenderer.setmargins(new int[] {30, 50, 20, 10});         multirenderer.setclickenabled(true);         multirenderer.setshowgridx(true);           (int = 0; < x.length; i++) {             multirenderer.addxtextlabel(i, mmonth[i]);         }          multirenderer.addseriesrenderer(incomerenderer);         return multirenderer;     } 

}

i see handling click events on chart view. every bar series has own color. in order have bar different color, has belong series. in case, have remove bar series belongs , add series 1 item, selected bar.

on second click, reverse operation above.


Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -