Android折线图开发之Achartnegine

原创 2016年06月02日 09:46:50

转载请注明出处:http://blog.csdn.net/liu1252247624/article/details/51563996

效果图如下:

首先,要使用achartengine必须要加入jar包(源码中有,可以拷出来用)

直接贴代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.lg.achartenginedemo.MainActivity">

    <RelativeLayout
        android:id="@+id/chart"
        android:layout_width="match_parent"
        android:layout_height="300dp"/>

</RelativeLayout>

下面是Activity中的代码:

public class MainActivity extends AppCompatActivity {
    private RelativeLayout chart;
    //XY轴坐标数据
    private XYSeries series1,series2;
    //单个曲线渲染器
    private XYSeriesRenderer renderer1,renderer2;
    //图标数据集
    private XYMultipleSeriesDataset mDataset=new XYMultipleSeriesDataset();
    //曲线图整体渲染器
    private XYMultipleSeriesRenderer mRenderer=new XYMultipleSeriesRenderer();
    //绘图视图
    private GraphicalView mChartView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        chart=(RelativeLayout)findViewById(R.id.chart);
        init_chart();
    }

    private void init_chart() {
        /* ****添加曲线***** */
        mRenderer.setXTitle("序号"); // 设置为X轴的标题
        mRenderer.setYTitle("数值"); // 设置为Y轴的标题
        mRenderer.setChartTitle("achartengine折线图"); // 设置图表标题
        mRenderer.setMargins(new int[] { 30, 40, 20, 30 }); // 上左下右边距
        mRenderer.setAxisTitleTextSize(20); // 设置轴标题文本大小
        mRenderer.setLabelsColor(Color.rgb(0xD2, 0x69, 0x1E)); // 坐标名称及标题颜色
        mRenderer.setXLabelsColor(Color.BLACK);// 设置X轴刻度颜色
        mRenderer.setYLabelsColor(0, Color.BLACK);// 设置Y轴刻度颜色
        mRenderer.setChartTitleTextSize(30);// 设置图表标题文字的大小
        mRenderer.setLabelsTextSize(18);// 设置标签的文字大小
        mRenderer.setYLabels(10);// 设置Y轴刻度个数
        mRenderer.setYLabelsAlign(Paint.Align.RIGHT); // 设置刻度线与Y轴之间的相对位置关系
        mRenderer.setClickEnabled(false);
        mRenderer.setZoomEnabled(true); // 设置是否可以滑动及放大缩小;
        mRenderer.setPanEnabled(true);
        mRenderer.setApplyBackgroundColor(true); // 设置背景颜色可应用
        mRenderer.setBackgroundColor(Color.argb(20, 0xFF, 0xFF, 0xFF)); // 内部颜色
        mRenderer.setMarginsColor(Color.argb(20, 0xFF, 0xB5, 0xC5)); // 外部颜色
        mRenderer.setShowLegend(true); // 隐藏曲线以外的部分
        mRenderer.setLegendHeight(50);
        mRenderer.setLegendTextSize(20);
        mRenderer.setSelectableBuffer(10);
        series1 = new XYSeries("曲线1", 0); // XY坐标序列
        /*设置坐标点*/
        series1.add(0,3);
        series1.add(1,1);
        series1.add(2,4);
        series1.add(3,2);
        series2=new XYSeries("曲线2",0);
        series2.add(0,2);
        series2.add(1,4);
        series2.add(2,1);
        series2.add(3,5);
        mDataset.addSeries(series1);
        mDataset.addSeries(series2);
        /*曲线1*/
        renderer1 = new XYSeriesRenderer();
        renderer1.setPointStyle(PointStyle.CIRCLE); // 坐标点形式
        renderer1.setPointStrokeWidth(15);  //坐标点的大小
        renderer1.setColor(Color.RED); // 温度线红色 温度
        renderer1.setLineWidth(3); // 线宽3
        /*曲线2*/
        renderer2 = new XYSeriesRenderer();
        renderer2.setPointStyle(PointStyle.CIRCLE); // 坐标点形式
        renderer2.setPointStrokeWidth(15);  //坐标点的大小
        renderer2.setColor(Color.BLUE); // 温度线红色 温度
        renderer2.setLineWidth(3); // 线宽3
        mRenderer.addSeriesRenderer(renderer1);
        mRenderer.addSeriesRenderer(renderer2);
        mChartView = ChartFactory.getLineChartView(this, mDataset, mRenderer);
        chart.addView(mChartView, new LayoutParams(LayoutParams.MATCH_PARENT,
                LayoutParams.MATCH_PARENT));
        mChartView.repaint();
    }
}

相信大家能一目了然,当然可以根据不同的需求进行改动

源码地址:http://download.csdn.net/detail/liu1252247624/9538586

版权声明:本文为博主原创文章,欢迎转载,转载务必注明文章出处,作者信息。

Android之MPAndroidChart库使用说明(柱状图、折线图、饼图和组合图.)

介绍: MPAndroidChart是一款基于Android的开源图表库,MPAndroidChart不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,应用起来非...
  • wjk343977868
  • wjk343977868
  • 2016年11月24日 10:04
  • 12319

Android 折线图绘制

自定义View 折线图 点击事件处理
  • zhcswlp0625
  • zhcswlp0625
  • 2017年03月29日 12:34
  • 3885

自定义View之颜色渐变折线图

首先看下要实现的效果图,图片录制效果不好,渐变颜色没有完全显示出来,以至于下半部分渐变色变成了白色。 一、定义LineChartView类并继承View。 二、添加在定义属性。以在value目...
  • qq_20521573
  • qq_20521573
  • 2017年03月16日 14:14
  • 1815

Android 自定义View,实现折线图

最近要完成一个折线图控件,用来显示一系列的状态,并可以进行滑动。虽然现在有很多大牛写好的控件可以直接使用,但我感觉那些控件是给高手的使用的,对于我这样的菜鸟,还是脚踏实地,自己慢慢码代码,才可以提高。...
  • yifei1989
  • yifei1989
  • 2014年06月10日 20:56
  • 6524

Android 项目(一):自定义View绘制“折线图”

都说不要造轮子不要造轮子,可是我还是在不停的造轮子啊!!!闲话不多说了看看上面折线图的效果(Ps:当然了如果有现成的例子或者是开源的东西最好还是参考别人的或者是开源的,毕竟自己自定义view好看是好看...
  • danfengw
  • danfengw
  • 2015年10月13日 22:25
  • 4704

Android之玩转MPAndroidChart让(折线图、柱形图、饼状图、散列图、雷达图)优雅的舞动

第一步:不废话,先爆照 我的github地址:https://github.com/changechenyu/MPAndroidChartTest 第二步:介绍MPAndroidChart...
  • u011068702
  • u011068702
  • 2015年11月30日 00:42
  • 14943

android自定义View,实现折线图(一)

效果图: ChartView类代码: public class ChartView extends View{ private Paint paint; private Pai...
  • old_sparrow
  • old_sparrow
  • 2016年05月17日 19:06
  • 523

achartengine之折线图---简单用法(续二)---(动态刷新)图形嵌套在页面(有问题请大家帮忙看看),已解决问题

(问题在文章的最后,大致说来就是折线图,如果点的个数大于3个的时候,不是所有的点都显示对应的值的,这是为什么呢,本来以为是小问题,但两天了还没找到原因) 将前两天的折线图代码做了小量修改,形成一个类...
  • tianshi1017
  • tianshi1017
  • 2013年03月13日 16:57
  • 4075

Android使用自定义View继承SurfaceView实现动态折线图的绘制

转载请标明出处: 请先看效果: 废话不多说,直接上代码: 一、layout:activity_main ...
  • klxh2009
  • klxh2009
  • 2016年03月13日 19:47
  • 4555

Android绘制折线图、柱状图等

来源:点击打开链接 简洁明了~  很多时候,做一些统计数据,可能放到列表里面看起来不太直观,这个时候借助于折线图,饼状图,柱形图等报表图形展示,即直观,又可以一目了然的明白数据的趋势变化,...
  • u010229714
  • u010229714
  • 2016年06月13日 10:30
  • 4198
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android折线图开发之Achartnegine
举报原因:
原因补充:

(最多只允许输入30个字)