转载自:http://blog.csdn.net/eastmoon502136/article/details/51049111
今天听群里的朋友安利了MPAndroidChart,这里转载下他的简单实用
关于android的图表,这里就换作chart吧,如果要自己实现的话,那工作量可是很大的,好在有好几个开源的框架可以拿来使用,首先是achartengine了:achartengine github源码链接。其次是MPAndroidChart:MPAndroidChart github源码链接。关于更详细的介绍可以参考上面的链接,这里主要是简单讲下使用。因为没找到android studio的dependencies,所以就网上下载了相应的jar包了,具体已经在百度云上了,可以参考下面的链接。
这里依次是atchartengine的折线图,MPAndroidChart的折线图和饼图。
至于怎么包含jar包,怎么建工程这就不多讲了,既然都要学习第三方的框架了,这些基础肯定有的了。首先是怎么把chart安在界面上,achartengine可以直接使用LinearLayout,然后把需要的chart绘画在这个LinearLayout上。具体xml如下所示:
<LinearLayout
android:id="@+id/chart"android:layout_width="match_parent"android:layout_height="150dp"android:orientation="vertical">
LinearLayout>
具体代码实现如下,基本上都加了注释了,理解起来还是很方便的了,具体看ChartActivity代码中:
当然atchartengine还有其他更加强大的功能,这里只是简单用了下折线图。
MPAndroidChart的实现需要用到自定义的空间com.github.mikephil.charting.charts.LineChart来实现折线图:
<com.github.mikephil.charting.charts.LineChartandroid:id="@+id/spread_line_chart"android:layout_hljs-string" >"match_parent"android:layout_hljs-string" >"150dp" />
MPAndroidChart的实现需要用到自定义的空间com.github.mikephil.charting.charts.PieChart来实现折线图:
<com.github.mikephil.charting.charts.PieChartandroid:id="@+id/spread_pie_chart"android:layout_hljs-string" >"match_parent"android:layout_hljs-string" >"200dp"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><LinearLayout
android:id="@+id/chart"android:layout_width="match_parent"android:layout_height="150dp"android:orientation="vertical">LinearLayout><com.github.mikephil.charting.charts.LineChart
android:id="@+id/spread_line_chart"android:layout_width="match_parent"android:layout_height="150dp" /><com.github.mikephil.charting.charts.PieChart
android:id="@+id/spread_pie_chart"android:layout_width="match_parent"android:layout_height="200dp"/><Button
android:id="@+id/getData"android:layout_height="wrap_content"android:layout_width="match_parent"android:text="获取当访问量" />
LinearLayout>
代码的主要介绍在注释里面:
package com.jared.emdatabindingstudy.ui;import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import com.jared.emdatabindingstudy.R;import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;import java.util.ArrayList;
import java.util.List;/*** Created by jared on 16/4/1.*/
public class ChartActivity extends BaseActivity {private final static String TAG = ChartActivity.class.getSimpleName();private LinearLayout chartLyt;private LineChart mLineChart;private PieChart mPieChart;Typeface mTf; // 自定义显示字体private Button getDataBtn;private List
}
这里主要是介绍了chart的简单使用,具体得看需求再进行修改了,个人还是比较喜欢MPAndroidChart,不管是显示的效果还是使用的方便。