This article describes the method of using achartengine to draw various charts in Android development. Share it for your reference, as follows:
1.
package ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; public class ABarChart { public Intent execute(Context context) { return (context, getBarChartDataset(), getBarChartRenderer(), ); } private XYMultipleSeriesRenderer getBarChartRenderer() { // TODO Auto-generated method stub XYMultipleSeriesRenderer renderer=new XYMultipleSeriesRenderer(); SimpleSeriesRenderer r; r=new SimpleSeriesRenderer(); (); (r); r=new SimpleSeriesRenderer(); (); (r); setBarChartRenderer(renderer); return renderer; } private void setBarChartRenderer(XYMultipleSeriesRenderer renderer) { // TODO Auto-generated method stub ("Bar Chart"); ("X Axis"); ("Y Axis"); (10.5); (0.5); (210); (0); } private XYMultipleSeriesDataset getBarChartDataset() { // TODO Auto-generated method stub XYMultipleSeriesDataset dataset=new XYMultipleSeriesDataset(); final int SERIES_NR=2; final int NR=10; Random random=new Random(); for (int i = 0; i < SERIES_NR; i++) { CategorySeries series=new CategorySeries("Bar Chart---"+(i+1)); for (int j = 0; j < NR; j++) { (100+(100)); } (()); } return dataset; } }
2.
package ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; public class ABubbleChart { private final int SERIES_NR = 3; private final int NR = 20; public Intent execute(Context context) { return (context, getBubbleChartDataset(), getBubbleChartRenderer(), "Bubble Chart Demo"); } private XYMultipleSeriesRenderer getBubbleChartRenderer() { // TODO Auto-generated method stub XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); int[] linearColor = { , , }; XYSeriesRenderer r; for (int i = 0; i < SERIES_NR; i++) { // entry=new XYEntry<Integer, Integer>(key, value); r = new XYSeriesRenderer(); (linearColor[i]); (); (2); (r); } setBarChartRenderer(renderer); return renderer; } private XYMultipleSeriesDataset getBubbleChartDataset() { // TODO Auto-generated method stub XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); for (int i = 0; i < SERIES_NR; i++) { XYValueSeries series = new XYValueSeries("Bubble Chart---" + (i + 1)); int temp = 10 * i; int[][] data = getBasicData(); for (int j = 0; j < ; j++) { if((j+1)%5 ==0){ int x = data[j][0]; int y = temp; int value=data[j][1]+temp; (x, y, value); } } (series); } return dataset; } private int[][] getBasicData() { int[][] data = new int[20][2]; Random rand = new Random(); for (int i = 0; i < ; i++) { data[i][0] = i; data[i][1] = 20 + (20) % 20; } return data; } private void setBarChartRenderer(XYMultipleSeriesRenderer renderer) { // TODO Auto-generated method stub ("Bubble Chart"); ("X Axis"); ("Y Axis"); (20); (0); (30); (0); (true);//No results were found (true);//Set background color (); (true);// (); (true);//After setting, no dragging (true);//Set whether the telescopic button is visible (true); (true);//Set whether it can be retracted (); (16); } }
3.
package ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; public class ALinearChart { private final int SERIES_NR=3; private final int NR=20; public Intent execute(Context context) { return (context, getLinearChartDataset(), getLinearChartRenderer(), "Linear Chart Another"); } private XYMultipleSeriesRenderer getLinearChartRenderer() { // TODO Auto-generated method stub int[] linearColor={, , }; int[] belowLinearColor={, , }; XYMultipleSeriesRenderer renderer=new XYMultipleSeriesRenderer(); XYSeriesRenderer tempRender; for (int i = 0; i < SERIES_NR; i++) { tempRender=new XYSeriesRenderer(); (linearColor[i]); // (true); // (belowLinearColor[i]); (); (2); (tempRender); } setLinearChartRenderer(renderer); return renderer; } private void setLinearChartRenderer(XYMultipleSeriesRenderer renderer) { // TODO Auto-generated method stub ("Three Linear Chart"); (20); (0); (60); (0); } private XYMultipleSeriesDataset getLinearChartDataset() { // TODO Auto-generated method stub XYMultipleSeriesDataset dataset=new XYMultipleSeriesDataset(); for (int i = 0; i < SERIES_NR; i++) { XYSeries series=new XYSeries("Stock Trend---"+(i+1)); int temp=10*i; int[][] data=getBasicData(); for (int j = 0; j < ; j++) { int x=data[j][0]; int y=temp+data[j][1]; (x, y); } (series); } return dataset; } private int[][] getBasicData() { int[][] data=new int[20][2]; Random rand=new Random(); for (int i = 0; i < ; i++) { data[i][0]=i; data[i][1]=20+(20)%20; } return data; } }
4.
package ; import ; import ; import ; import ; import ; import ; import ; public class APieChart { private double[] values = { 25, 30, 45 }; public APieChart() { // TODO Auto-generated constructor stub } public APieChart(double[] values) { if ( == 3) { for (int i = 0; i < ; i++) { [i] = values[i]; } } } public Intent execute(Context context) { int[] colors={, , }; DefaultRenderer renderer=buildCategoryRenderer(colors); (true);//No results were found (true);//Set background color (); (true);// (); (true);//After setting, no dragging (true);//Set whether the telescopic button is visible (true); (true);//Set whether it can be retracted (); (16); // (50); // (true); (180);//It seems not easy to use CategorySeries series=new CategorySeries("Fruit Ratio"); ("Apple", values[0]); ("Banana", values[1]); ("Orange", values[2]); return (context, series, renderer, "fruit"); } private DefaultRenderer buildCategoryRenderer(int[] colors) { DefaultRenderer renderer=new DefaultRenderer(); (true); (); (20); ("Pie Chart"); (20); (20); (50); for (int i = 0; i < ; i++) { int j = colors[i]; SimpleSeriesRenderer r=new SimpleSeriesRenderer(); (j); (r); } return renderer; } }
5.
package ; import ; import ; import ; import ; import ; import ; import ; public class MainActivity extends Activity { private Button lineChartBtn; private Button areaChartBtn; private Button scatterChartBtn; private Button timeChartBtn; private Button barChartBtn; private Button pieChartBtn; private Button bubbleChartBtn; private Button doughnutChartBtn; private Button rangeBarChartBtn; private Button dialChartBtn; @Override protected void onCreate(Bundle savedInstanceState) { (savedInstanceState); setContentView(.activity_main); lineChartBtn=(Button) findViewById(.line_chart); areaChartBtn=(Button) findViewById(.area_chart); scatterChartBtn=(Button) findViewById(.scatter_chart); timeChartBtn=(Button) findViewById(.time_chart); barChartBtn=(Button) findViewById(.bar_chart); pieChartBtn=(Button) findViewById(.pie_chart); bubbleChartBtn=(Button) findViewById(.bubble_chart); doughnutChartBtn=(Button) findViewById(.doughnut_chart); rangeBarChartBtn=(Button) findViewById(.range_bar_chart); dialChartBtn=(Button) findViewById(.dial_chart); OnClickListener listener=new AChartEngineListener(); (listener); (listener); (listener); (listener); } class AChartEngineListener implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub switch (()) { case .line_chart: // Intent intent=new Intent(, ); // startActivity(intent); Intent linearChartIntent=new ALinearChart().execute(); startActivity(linearChartIntent); break; case .area_chart: break; case .scatter_chart: break; case .time_chart: break; case .bar_chart: Intent barChartIntent=new ABarChart().execute(); startActivity(barChartIntent); break; case .pie_chart: Intent pieChartIntent=new APieChart().execute(); startActivity(pieChartIntent); break; case .bubble_chart: Intent bubbleChartIntent=new ABubbleChart().execute(); startActivity(bubbleChartIntent); break; case .doughnut_chart: break; case .range_bar_chart: break; case .dial_chart: break; default: break; } } } }
6.
package ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; public class LinearChartActivity extends Activity { private XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); private XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); private XYSeries currentSeries; private XYSeriesRenderer currentRenderer; private String dateFormat; private GraphicalView chartView; @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { // TODO Auto-generated method stub (savedInstanceState); dataset = (XYMultipleSeriesDataset) savedInstanceState .getSerializable("dataset"); renderer = (XYMultipleSeriesRenderer) savedInstanceState .getSerializable("renderer"); currentSeries = (XYSeries) savedInstanceState .getSerializable("current_series"); currentRenderer = (XYSeriesRenderer) savedInstanceState .getSerializable("current_renderer"); dateFormat = ("date_format"); } @Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub (outState); ("dataset", dataset); ("renderer", renderer); ("current_series", currentSeries); ("current_renderer", currentRenderer); ("date_format", dateFormat); } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub (savedInstanceState); setContentView(.stock_chart); String seriesTitle = "Shanghai Index"; XYSeries series = new XYSeries(seriesTitle); (series); currentSeries = series; XYSeriesRenderer seriesRenderer = new XYSeriesRenderer(); (); (true); // ();//Is there any color added to the area below the polyline? (); (3); (seriesRenderer); // Add another curve diagram// seriesRenderer = new XYSeriesRenderer(); // (); // (true); // (); // (); // (3); // (seriesRenderer); (0); (100); (20); (false); (20); ("Shanghai Index-24-hour trend chart"); currentRenderer = seriesRenderer; double x = 0; double y = 0; int[][] xyValues = getValues(); // for (int i = 0; i < 2; i++) { // for (int j = 0; j < ; j++) { x=xyValues[j][0]; y=xyValues[j][1]; (x, y); } // } } @Override protected void onResume() { // TODO Auto-generated method stub if(chartView == null){ LinearLayout layout=(LinearLayout) findViewById(); chartView=(this, dataset, renderer); (chartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); }else { (); (); } (); } private int[][] getValues() { // TODO Auto-generated method stub int[][] xyValues = new int[20][2]; Random rand=new Random(); for (int i = 0; i < ; i++) { xyValues[i][0]=i; xyValues[i][1]=(100); } return xyValues; } }
7.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:andro package="" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppBaseTheme" > <activity android:name="" android:label="@string/app_name" > <intent-filter> <action android:name="" /> <category android:name="" /> </intent-filter> </activity> <activity android:name=".LinearChartActivity"></activity> <activity android:name=""></activity> </application> </manifest>
For more information about Android related content, please check out the topic of this site:Summary of Android graphics and image processing skills》、《Android development introduction and advanced tutorial》、《Android debugging skills and solutions to common problems》、《Summary of the usage of basic Android components》、《Android View View Tips Summary》、《Android layout layout tips summary"and"Android control usage summary》
I hope this article will be helpful to everyone's Android programming design.