編輯:關於Android編程
首先要下載acharengine的包,裡面重要的有lib和一些簡易的工具,等下我附在目錄裡,而這些包都必須調用的。
然後下面附上基本的作圖代碼:
package org.achartengine.chartdemo.demo.chart; import java.util.ArrayList; import java.util.List; import org.achartengine.ChartFactory; import org.achartengine.chart.PointStyle; import org.achartengine.renderer.XYMultipleSeriesRenderer; import org.achartengine.renderer.XYSeriesRenderer; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.graphics.Paint.Align; public class AverageTemperatureChart extends AbstractDemoChart { public String getName() { return Average temperature; } public String getDesc() { return The average temperature in 4 Greek islands (line chart); } public Intent execute(Context context) { String[] titles = new String[] { Crete, Corfu, Thassos, Skiathos };//圖例 Listx = new ArrayList (); for (int i = 0; i < titles.length; i++) { x.add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 });//每個序列中點的X坐標 } List values = new ArrayList (); values.add(new double[] { 12.3, 12.5, 13.8, 16.8, 20.4, 24.4, 26.4, 26.1, 23.6, 20.3, 17.2, 13.9 });//序列1中點的y坐標 values.add(new double[] { 10, 10, 12, 15, 20, 24, 26, 26, 23, 18, 14, 11 });//序列2中點的Y坐標 values.add(new double[] { 5, 5.3, 8, 12, 17, 22, 24.2, 24, 19, 15, 9, 6 });//序列3中點的Y坐標 values.add(new double[] { 9, 10, 11, 15, 19, 23, 26, 25, 22, 18, 13, 10 });//序列4中點的Y坐標 int[] colors = new int[] { Color.BLUE, Color.GREEN, Color.CYAN, Color.YELLOW };//每個序列的顏色設置 PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.DIAMOND, PointStyle.TRIANGLE, PointStyle.SQUARE };//每個序列中點的形狀設置 XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles);//調用AbstractDemoChart中的方法設置renderer. int length = renderer.getSeriesRendererCount(); for (int i = 0; i < length; i++) { ((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true);//設置圖上的點為實心 } setChartSettings(renderer, Average temperature, Month, Temperature, 0.5, 12.5, -10, 40, Color.LTGRAY, Color.LTGRAY);//調用AbstractDemoChart中的方法設置圖表的renderer屬性. renderer.setXLabels(12);//設置x軸顯示12個點,根據setChartSettings的最大值和最小值自動計算點的間隔 renderer.setYLabels(10);//設置y軸顯示10個點,根據setChartSettings的最大值和最小值自動計算點的間隔 renderer.setShowGrid(true);//是否顯示網格 renderer.setXLabelsAlign(Align.RIGHT);//刻度線與刻度標注之間的相對位置關系 renderer.setYLabelsAlign(Align.CENTER);//刻度線與刻度標注之間的相對位置關系 renderer.setZoomButtonsVisible(true);//是否顯示放大縮小按鈕 renderer.setPanLimits(new double[] { -10, 20, -10, 40 }); //設置拖動時X軸Y軸允許的最大值最小值. renderer.setZoomLimits(new double[] { -10, 20, -10, 40 });//設置放大縮小時X軸Y軸允許的最大最小值. Intent intent = ChartFactory.getLineChartIntent(context, buildDataset(titles, x, values), renderer, Average temperature111);//構建Intent return intent; } }
有一點要注意,上面這個返回的是intent,也就是說必須有個主activity來作為傳承。下面附上我的主activity:
package com.example.acharengine; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private Button btn = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button)findViewById(R.id.button1); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub AverageTemperatureChart intent = new AverageTemperatureChart(); Intent mIntent = intent.execute(MainActivity.this); startActivity(mIntent); } }); } }
至於XML只要有個按鈕跳過去就行:
再次強調,兩個重要的包,一個是lib,一個是package org.achartengine.chartdemo.demo.chart;都必須調進去。
別忘了在manifest中加入 這個activity。
一、方法介紹: 每個Android應用程序都可以通過Context來獲取與應用程序相關的目錄,這些目錄的功能各異,每一個目錄都有自己的特點,
Android基礎入門教程——10.5 AlarmManager(鬧鐘服務)標簽(空格分隔): Android基礎入門教程本節引言: 本節帶來的A
前言:在還沒有做任何一件事情之前,千萬不要覺得這件事情很難,因為還沒有開始做內心就已經對這件事情產生了恐懼,這將會阻止你的進步,也許當你動手開始做了這件事後發現其實並不是
Android中的傳遞有兩個方法,一個是Serializable,另一個是Parcelable。 Serializable是J2SE本身就支持的。而Parc