android 图表控件问题 android图表控件 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 surfaceview,canvas画图做吧。系统的控件做不了 我是用这样实现的,可是实现不了点击事件。package net.tycmc.bulb.androidstandard.sales.ui;import java.util.ArrayList;import org.achartengine.ChartFactory;import org.achartengine.GraphicalView;import org.achartengine.chart.PointStyle;import org.achartengine.chart.BarChart.Type;import org.achartengine.model.CategorySeries;import org.achartengine.model.XYMultipleSeriesDataset;import org.achartengine.model.XYSeries;import org.achartengine.renderer.SimpleSeriesRenderer;import org.achartengine.renderer.XYMultipleSeriesRenderer;import org.achartengine.renderer.XYSeriesRenderer;import com.example.barchart.R;import android.os.Bundle;import android.app.Activity;import android.graphics.Color;import android.graphics.Paint.Align;import android.view.Menu;import android.view.ViewGroup.LayoutParams;import android.widget.LinearLayout;import android.widget.RelativeLayout;public class MainActivity extends Activity { LinearLayout li1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 得到资源 li1 = (LinearLayout) findViewById(R.id.li1); // 初始化柱状图 initView(); } private void initView() { // 柱状图的序列的标题 String[] titles = new String[] { "月销售量" }; // 存放柱状图序列的值 ArrayList<double[]> value = new ArrayList<double[]>(); double[] d1 = new double[] { 10, 30, 50, 70, 90,20,40,60,80,100,15,66 }; value.add(d1); int[] colors = { Color.BLUE};//, Color.GREEN // 为li1添加柱状图 li1.addView( xychar(titles, value, colors, 12, 10, new double[] { 0, 12, 0, 100}, new int[] { 1, 2, 3, 4, 5,6,7,8,9,10,11,12 }, "2013年月销售量", true), new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); } public GraphicalView xychar(String[] titles, ArrayList<double[]> value, int[] colors, int x, int y, double[] range, int[] xLable, String xtitle, boolean f) { // 多个渲染 XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); // 多个序列的数据集 XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); // 构建数据集以及渲染 for (int i = 0; i < titles.length; i++) { XYSeries series = new XYSeries(titles[i]); double[] yLable = value.get(i); for (int j = 0; j < yLable.length; j++) { series.add(xLable[j], yLable[j]); } dataset.addSeries(series); XYSeriesRenderer xyRenderer = new XYSeriesRenderer(); // 设置颜色 xyRenderer.setColor(colors[i]); // 设置点的样式 // xyRenderer.setPointStyle(PointStyle.SQUARE); // 将要绘制的点添加到坐标绘制中 renderer.addSeriesRenderer(xyRenderer); } // 设置x轴标签数 renderer.setXLabels(x); // 设置Y轴标签数 renderer.setYLabels(y); // 设置x轴的最大值 renderer.setXAxisMax(x); // 设置轴的颜色 renderer.setAxesColor(Color.BLACK); // 设置x轴和y轴的标签对齐方式 renderer.setXLabelsAlign(Align.CENTER); renderer.setYLabelsAlign(Align.RIGHT); // 设置现实网格 // renderer.setShowGrid(true); renderer.setShowAxes(true); // 设置条形图之间的距离 renderer.setBarSpacing(0.2); renderer.setInScroll(false); renderer.setPanEnabled(false, false); renderer.setClickEnabled(false); // 设置x轴和y轴标签的颜色 renderer.setXLabelsColor(Color.RED); renderer.setYLabelsColor(0, Color.RED); int length = renderer.getSeriesRendererCount(); // 设置图标的标题 renderer.setChartTitle(xtitle); renderer.setLabelsColor(Color.RED); // 设置图例的字体大小 renderer.setLegendTextSize(18); // 设置x轴和y轴的最大最小值 renderer.setRange(range); renderer.setMarginsColor(0x00888888); for (int i = 0; i < length; i++) { SimpleSeriesRenderer ssr = renderer.getSeriesRendererAt(i); ssr.setChartValuesTextAlign(Align.RIGHT); ssr.setChartValuesTextSize(12); ssr.setDisplayChartValues(f); } GraphicalView mChartView = ChartFactory.getBarChartView( getApplicationContext(), dataset, renderer, Type.DEFAULT); return mChartView; }} google提供的图表引擎 AChartEngine, 你可以去看看! Android做数据库管理系统有必要吗? 开发android该如何调试 发现一个Android很好用的客户端软件 谁有android中间件的资料啊~~~~ tabhost底部选项卡的 复用 谁弄过?? 自定义BaseAdapter,动态输入item时,触发onclick里的事件 代理混淆后,无法捕获自定义异常 android网络图片适配不同分辨率屏幕 关于runOnUiThread的问题 在setting里面自定义广播接收器收不到广播怎么解决? 为什么在代码中控制UI界面 出现这样 的问题 安卓中如何获取当前软件的版本信息
package net.tycmc.bulb.androidstandard.sales.ui;import java.util.ArrayList;import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.chart.BarChart.Type;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.SimpleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;import com.example.barchart.R;import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.Paint.Align;
import android.view.Menu;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;public class MainActivity extends Activity {
LinearLayout li1; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 得到资源
li1 = (LinearLayout) findViewById(R.id.li1);
// 初始化柱状图
initView();
} private void initView() {
// 柱状图的序列的标题
String[] titles = new String[] { "月销售量" };
// 存放柱状图序列的值
ArrayList<double[]> value = new ArrayList<double[]>();
double[] d1 = new double[] { 10, 30, 50, 70, 90,20,40,60,80,100,15,66 };
value.add(d1);
int[] colors = { Color.BLUE};//, Color.GREEN // 为li1添加柱状图
li1.addView(
xychar(titles, value, colors, 12, 10, new double[] { 0,
12, 0, 100}, new int[] { 1, 2, 3, 4,
5,6,7,8,9,10,11,12 }, "2013年月销售量", true),
new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
} public GraphicalView xychar(String[] titles, ArrayList<double[]> value,
int[] colors, int x, int y, double[] range, int[] xLable,
String xtitle, boolean f) {
// 多个渲染
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
// 多个序列的数据集
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
// 构建数据集以及渲染
for (int i = 0; i < titles.length; i++) {
XYSeries series = new XYSeries(titles[i]);
double[] yLable = value.get(i);
for (int j = 0; j < yLable.length; j++) {
series.add(xLable[j], yLable[j]);
}
dataset.addSeries(series);
XYSeriesRenderer xyRenderer = new XYSeriesRenderer();
// 设置颜色
xyRenderer.setColor(colors[i]);
// 设置点的样式 //
xyRenderer.setPointStyle(PointStyle.SQUARE);
// 将要绘制的点添加到坐标绘制中 renderer.addSeriesRenderer(xyRenderer);
}
// 设置x轴标签数
renderer.setXLabels(x);
// 设置Y轴标签数
renderer.setYLabels(y);
// 设置x轴的最大值
renderer.setXAxisMax(x);
// 设置轴的颜色
renderer.setAxesColor(Color.BLACK);
// 设置x轴和y轴的标签对齐方式
renderer.setXLabelsAlign(Align.CENTER);
renderer.setYLabelsAlign(Align.RIGHT);
// 设置现实网格
// renderer.setShowGrid(true); renderer.setShowAxes(true);
// 设置条形图之间的距离
renderer.setBarSpacing(0.2);
renderer.setInScroll(false);
renderer.setPanEnabled(false, false);
renderer.setClickEnabled(false);
// 设置x轴和y轴标签的颜色
renderer.setXLabelsColor(Color.RED);
renderer.setYLabelsColor(0, Color.RED); int length = renderer.getSeriesRendererCount();
// 设置图标的标题
renderer.setChartTitle(xtitle);
renderer.setLabelsColor(Color.RED); // 设置图例的字体大小
renderer.setLegendTextSize(18);
// 设置x轴和y轴的最大最小值
renderer.setRange(range);
renderer.setMarginsColor(0x00888888);
for (int i = 0; i < length; i++) {
SimpleSeriesRenderer ssr = renderer.getSeriesRendererAt(i);
ssr.setChartValuesTextAlign(Align.RIGHT);
ssr.setChartValuesTextSize(12);
ssr.setDisplayChartValues(f);
}
GraphicalView mChartView = ChartFactory.getBarChartView(
getApplicationContext(), dataset, renderer, Type.DEFAULT); return mChartView; }
}