編輯:關於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 };//圖例
List x = 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應用程序相關的文件目錄詳解
一、方法介紹: 每個Android應用程序都可以通過Context來獲取與應用程序相關的目錄,這些目錄的功能各異,每一個目錄都有自己的特點,
Android基礎入門教程——10.5 AlarmManager(鬧鐘服務)
Android基礎入門教程——10.5 AlarmManager(鬧鐘服務)標簽(空格分隔): Android基礎入門教程本節引言: 本節帶來的A
android使用AIDL實現跨進程通訊(IPC)
前言:在還沒有做任何一件事情之前,千萬不要覺得這件事情很難,因為還沒有開始做內心就已經對這件事情產生了恐懼,這將會阻止你的進步,也許當你動手開始做了這件事後發現其實並不是
Android高手之路之Android中Intent傳遞對象的兩種方法Serializable,Parcelable
Android中的傳遞有兩個方法,一個是Serializable,另一個是Parcelable。 Serializable是J2SE本身就支持的。而Parc