Hellocharts-android Open Source Chart library (a) line chart

Source: Internet
Author: User

1.2. Source code Mainactivity.java public class Mainactivity extends appcompatactivity {public enum ChartType {line_chart, Colum N_chart, Pie_chart, Bubble_chart, Preview_line_chart, Preview_column_chart, other} @Override protected void OnCreate ( Bundle savedinstancestate) {super.oncreate (savedinstancestate); Setcontentview (R.layout.activity_main); if ( Savedinstancestate = = null) {Getsupportfragmentmanager (). BeginTransaction (). Add (R.id.container, new Placeholderfragment ()). commit (); }} public static class Placeholderfragment extends Fragment implements Adapterview.onitemclicklistener {private ListView ListView; Private Chartsamplesadapter adapter; Public placeholderfragment () {} @Override public View oncreateview (layoutinflater inflater, ViewGroup container, Bundle s Avedinstancestate) {View Rootview = inflater.inflate (R.layout.fragment_main, container, false); listview = (ListView) Ro Otview.findviewbyid (Android. R.id.list); adapter = new Chartsamplesadapter (getactivity (), 0, GeneratesampLesdescriptions ()); Listview.setadapter (adapter); Listview.setonitemclicklistener (this); return rootview; } @Override public void Onitemclick (Adapterview Adapter, view view, int position, long id) {Intent Intent; switch (position) {case 0://Line Chart; Intent = new Intent (Getactivity (), linechartactivity.class); StartActivity (Intent); Break Case 1://Column Chart; Intent = new Intent (getactivity (), columnchartactivity.class); StartActivity (Intent); Break Case 2://Pie Chart; Intent = new Intent (getactivity (), piechartactivity.class); StartActivity (Intent); Break Default:break; }} Private List Generatesamplesdescriptions () {List List = new ArrayList (); List.add (New Chartsampledescription ("line chart", "This is the line chart", Charttype.line_chart)); List.add (New Chartsampledescription ("Column chart", "This is Column chart", Charttype.column_chart)); List.add (New Chartsampledescription ("Pie chart", "This is Pie chart", Charttype.pie_chart)); return list; }} public static class Chartsamplesadapter extends Arrayadapter {Public Chartsamplesadapter (context context, int resource, List objects) {Super (context, resource, objects), @Override public View getView (int position, view Convertview, ViewGroup Parent) {Viewholder holder; if (Convertview = = null) {Convertview = View.inflate (GetContext (), r.layout.list_item_sample , null); Holder = new Viewholder (); Holder.text1 = (TextView) Convertview.findviewbyid (R.ID.TEXT1); Holder.text2 = (TextView) Convertview.findviewbyid (R.ID.TEXT2); Holder.chartlayout = (framelayout) Convertview.findviewbyid (r.id.chart_layout); Convertview.settag (holder); } else {holder = (Viewholder) Convertview.gettag ();} Chartsampledescription item = getItem (position); Holder.chartLayout.setVisibility (view.visible); Holder.chartLayout.removeAllViews (); Abstractchartview Chart; Switch (item.charttype) {case line_chart:chart = new Linechartview (GetContext ()); Holder.chartLayout.addView (CHART); Break Case Column_chart:chart = new Columnchartview (GetContext ()); Holder.chartLayout.addView (chart); Break Case Pie_chart:chart = new Piechartview(GetContext ()); Holder.chartLayout.addView (chart); Break Case Bubble_chart:chart = new Bubblechartview (GetContext ()); Holder.chartLayout.addView (chart); Break Default:chart = null; Holder.chartLayout.setVisibility (View.gone); Break if (null! = chart) {chart.setinteractive (false);//Disable Touch handling for chart on the ListView.} holder.text1.set Text (ITEM.TEXT1); Holder.text2.setText (ITEM.TEXT2); return convertview; } private class Viewholder {TextView Text1; TextView Text2; Framelayout ChartLayout; }} public static class Chartsampledescription {String Text1; String Text2; ChartType ChartType; Public Chartsampledescription (String Text1, String text2, ChartType ChartType) {this.text1 = Text1; this.text2 = Text2; t His.charttype = ChartType; }}} Linechartactivity.java public class Linechartactivity extends appcompatactivity {@Override protected void onCreate ( Bundle savedinstancestate) {super.oncreate (savedinstancestate); Setcontentview (R.layout.activity_line_chart); if(savedinstancestate = = null) {Getsupportfragmentmanager (). BeginTransaction (). Add (R.id.container, New Placeholderfragment ()). commit ();} }/** * A fragment containing a line chart. */public static class Placeholderfragment extends Fragment {private Linechartview chart; private linechartdata data; pri vate int numberoflines = 1; private int maxnumberoflines = 4; private int numberofpoints = 12; float[][] Randomnumberstab = new Float[maxnumberoflines][numberofpoints]; Private Boolean hasaxes = true; Private Boolean hasaxesnames = true; Private Boolean haslines = true; Private Boolean haspoints = true; Private Valueshape shape = valueshape.circle; Private Boolean isfilled = false; Private Boolean haslabels = false; Private Boolean iscubic = false; Private Boolean haslabelforselected = false; Private Boolean Pointshavedifferentcolor; Public placeholderfragment () {} @Override public View oncreateview (layoutinflater inflater, ViewGroup container, Bundle s Avedinstancestate) {SETHASOPTIONSMENU (true); View Rootview = inflater.inflate (R.layout.fragment_line_chart, container, false); Chart = (Linechartview) Rootview.findviewbyid (R.id.chart); Chart.setonvaluetouchlistener (New Valuetouchlistener ()); Generate some random values. Generatevalues (); Generatedata (); To disable view recalculation, see the Togglecubic () method for more information. Chart.setviewportcalculationenabled (FALSE); Resetviewport (); return rootview; }//Each column has a value of private void Generatevalues () {for (int i = 0; i < maxnumberoflines; ++i) {for (int j = 0; J < numberof Points; ++J) {//RANDOMNUMBERSTAB[I][J] = (float) math.random () * 100f; randomnumberstab[i][j] = 5;}} } private void Resetviewport () {//Reset viewport height range to (0,100) Final Viewport v = new Viewport (Chart.getmaximu Mviewport ()); V.bottom = 0; V.top = 100; V.left = 0; V.right = numberOfPoints-1; Chart.setmaximumviewport (v); Chart.setcurrentviewport (v); }//generate generates private void Generatedata () {List lines = new ArrayList (); for (int i = 0; i < NumberOfLines; ++i) {List values = new ArrayList (); for (int j = 0; j < numberofpoints; ++j) {Values.add (New Pointvalue (J, Randomnumberstab[i][j]));} Line line = new line (values); Line.setcolor (Chartutils.colors[i]); Line.setshape (Shape); Line.setcubic (iscubic); Line.setfilled (isfilled); Line.sethaslabels (Haslabels); Line.sethaslabelsonlyforselected (haslabelforselected); Line.sethaslines (Haslines); Line.sethaspoints (haspoints); if (Pointshavedifferentcolor) {Line.setpointcolor (chartutils.colors[(i + 1)% ChartUtils.COLORS.length]);} lines.add ( line); } data = new Linechartdata (lines); if (hasaxes) {Axis AxisX = new Axis (); Axis Axisy = new Axis (). Sethaslines (True); if (hasaxesnames) {axisx.setname ("axis X"); Axisy.setname ("Axis Y"); Data.setaxisxbottom (AxisX); Data.setaxisyleft (Axisy); } else {data.setaxisxbottom (null); Data.setaxisyleft (null);} data.setbasevalue (float.negative_infinity); Chart.setlinechartdata (data); } Private class Valuetouchlistener implements Linechartonvalueselectlistener {@Override public void Onvalueselected (int lineindex, int pointIndex, pointvalue value) {Toast.maketext (getactivity (), "Selected:" + value, Toast. Length_short). Show (); } @Override public void onvaluedeselected () {//TODO auto-generated Method stub}}} 3.xml Activity_main.xml Fragment_main.xml Activity_line_chart.xml Fragment_line_chart.xml

Hellocharts-android Open Source Chart library (a) line chart

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.