(备忘录)图表嵌入(1)
来源:互联网 发布:网络虚拟礼物 编辑:程序博客网 时间:2024/06/05 21:58
图表引入(折线图、柱状图、饼状图)
引入
工程的build中:
allprojects { repositories { jcenter() maven { url "https://jitpack.io" } }}
项目的build中:
compile 'com.github.PhilJay:MPAndroidChart:v3.0.2'
使用
一、折线图
在xml中:
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:background="@android:color/holo_purple"> <com.github.mikephil.charting.charts.LineChart android:id="@+id/line_chart" android:layout_width="match_parent" android:layout_height="300dp"/></LinearLayout>在activity中:
LineChart lineChart;//声明一个字体库private Typeface mtf;@Overrideprotected void initData() { mtf = Typeface.createFromAsset(getAssets(),"OpenSans-Regular.ttf"); //描述 lineChart.getDescription().setEnabled(false); Description des = new Description(); des.setText("123123"); lineChart.setDescription(des); //网格背景 lineChart.setDrawGridBackground(false); //当前的x轴对象 XAxis xAxis = lineChart.getXAxis(); //x轴显示位置 xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); //x轴的字体 xAxis.setTypeface(mtf); //x轴的网格线 xAxis.setDrawGridLines(false); //x轴的轴线 xAxis.setDrawAxisLine(true); //获取左边的y轴对象 YAxis leftAxis = lineChart.getAxisLeft(); //y轴的字体 leftAxis.setTypeface(mtf); //5:左边y轴的区间的个数 false:是否均匀分布 leftAxis.setLabelCount(5,false); leftAxis.setDrawGridLines(false); YAxis rightAxis = lineChart.getAxisRight(); rightAxis.setTypeface(mtf); rightAxis.setLabelCount(5,false); rightAxis.setDrawGridLines(false); //数据 LineData lineData = generateDataLine(1); lineChart.setData(lineData); lineChart.animateX(750);}
private LineData generateDataLine(int cnt) { //折线1 ArrayList<Entry> e1 = new ArrayList<Entry>(); //折线中的点 for (int i = 0; i < 12; i++) { e1.add(new Entry(i, (int) (Math.random() * 65) + 40)); } LineDataSet d1 = new LineDataSet(e1, "New DataSet " + cnt + ", (1)"); d1.setLineWidth(2.5f); d1.setCircleRadius(4.5f); d1.setHighLightColor(Color.rgb(244, 117, 117)); //是否显示小圆点上的数值 d1.setDrawValues(false); //折线2 ArrayList<Entry> e2 = new ArrayList<Entry>(); for (int i = 0; i < 12; i++) { e2.add(new Entry(i, e1.get(i).getY() - 30)); } LineDataSet d2 = new LineDataSet(e2, "New DataSet " + cnt + ", (2)"); d2.setLineWidth(2.5f); d2.setCircleRadius(4.5f); d2.setHighLightColor(Color.rgb(244, 117, 117)); d2.setColor(ColorTemplate.VORDIPLOM_COLORS[0]); d2.setCircleColor(ColorTemplate.VORDIPLOM_COLORS[0]); d2.setDrawValues(false); ArrayList<ILineDataSet> sets = new ArrayList<ILineDataSet>(); sets.add(d1); sets.add(d2); LineData cd = new LineData(sets); return cd;}
二、柱状图
在xml中:
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:background="@android:color/holo_purple"> <com.github.mikephil.charting.charts.BarChart android:id="@+id/bar_chart" android:layout_width="match_parent" android:layout_height="300dp"/></LinearLayout>在activity中:
BarChart barChart; private Typeface mTf; @Override protected void initData() { mTf = Typeface.createFromAsset(getAssets(), "OpenSans-Regular.ttf"); //描述 barChart.getDescription().setEnabled(false); barChart.setDrawGridBackground(false); barChart.setDrawBarShadow(false); XAxis xAxis = barChart.getXAxis(); xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); xAxis.setTypeface(mTf); xAxis.setDrawGridLines(false); xAxis.setDrawAxisLine(true); YAxis leftAxis = barChart.getAxisLeft(); leftAxis.setTypeface(mTf); leftAxis.setLabelCount(5, false); leftAxis.setSpaceTop(20f); leftAxis.setAxisMinimum(0f); // this replaces setStartAtZero(true) YAxis rightAxis = barChart.getAxisRight(); rightAxis.setTypeface(mTf); rightAxis.setLabelCount(5, false); rightAxis.setSpaceTop(20f); rightAxis.setAxisMinimum(0f); // this replaces setStartAtZero(true) BarData mChartData = generateDataBar(1); mChartData.setValueTypeface(mTf); // set data barChart.setData((BarData) mChartData); barChart.setFitBars(true); // do not forget to refresh the chart// holder.chart.invalidate(); barChart.animateY(700); }
private BarData generateDataBar(int cnt) { ArrayList<BarEntry> entries = new ArrayList<BarEntry>(); for (int i = 0; i < 12; i++) { entries.add(new BarEntry(i, (int) (Math.random() * 70) + 30)); } BarDataSet d = new BarDataSet(entries, "New DataSet " + cnt); d.setColors(ColorTemplate.VORDIPLOM_COLORS); d.setHighLightAlpha(255); BarData cd = new BarData(d); cd.setBarWidth(0.9f); return cd;}
三、饼状图
在xml中:
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:background="@android:color/holo_purple"> <com.github.mikephil.charting.charts.PieChart android:id="@+id/pie_chart" android:layout_width="match_parent" android:layout_height="300dp"/></LinearLayout>
在activity中
//声明一个字体库private Typeface mTf;@Overrideprotected void initData() { mTf = Typeface.createFromAsset(getAssets(),"OpenSans-Regular.ttf"); // apply styling pieChart.getDescription().setEnabled(false); pieChart.setHoleRadius(52f); pieChart.setTransparentCircleRadius(57f); pieChart.setCenterText("1234567890"); pieChart.setCenterTextTypeface(mTf); pieChart.setCenterTextSize(9f); pieChart.setUsePercentValues(true); pieChart.setExtraOffsets(5, 10, 50, 10); PieData mChartData = generateDataPie(1); mChartData.setValueFormatter(new PercentFormatter()); mChartData.setValueTypeface(mTf); mChartData.setValueTextSize(11f); mChartData.setValueTextColor(Color.WHITE); // set data pieChart.setData((PieData) mChartData); Legend l = pieChart.getLegend(); l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP); l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT); l.setOrientation(Legend.LegendOrientation.VERTICAL); l.setDrawInside(false); l.setYEntrySpace(0f); l.setYOffset(0f); // do not forget to refresh the chart // holder.chart.invalidate(); pieChart.animateY(900);}
private PieData generateDataPie(int cnt) { ArrayList<PieEntry> entries = new ArrayList<PieEntry>(); for (int i = 0; i < 4; i++) { entries.add(new PieEntry((float) ((Math.random() * 70) + 30), "Quarter " + (i+1))); } PieDataSet d = new PieDataSet(entries, ""); // space between slices d.setSliceSpace(2f); d.setColors(ColorTemplate.VORDIPLOM_COLORS); PieData cd = new PieData(d); return cd;}
注:
1、使用的图标框架:
https://github.com/PhilJay/MPAndroidChart
2、“OpenSans-Regular.ttf”在上述的github中可以找到,然后放在assets中就可以使用了
阅读全文
0 0
- (备忘录)图表嵌入(1)
- maximo7中嵌入图表
- (备忘录)SlidingMenu(1)
- Qt学习备忘录(1)
- Cache数据库备忘录(1)
- (备忘录)多渠道打包1
- Flex之图表组件(1) ------ 面积图表
- (备忘录)banner循环(1)
- (备忘录)引导页(1)
- (备忘录)ViewPagerIndicator的使用(1)
- linux(Ubuntu)下常用命令备忘录1
- Erlang入门备忘录(1):单行编程
- WPF备忘录(1)有笑脸
- WPF备忘录(1)有笑脸
- Java备忘录(1)—内部类
- C++设计模式(1):备忘录模式
- NURBS备忘录(一)
- sql 备忘录(ZZ)
- Caffe均值文件binaryproto转npy
- 远程计算机或设备将不接受连接,IE无法上网
- Keepalived安装与配置
- JavaScript从入门到放弃(1)-基本操作:String,Object,Array,map,set
- Oracle01
- (备忘录)图表嵌入(1)
- osgEarth脚本属性案例 9. feature_labels_script.earth
- No such namespace prefix: soap12 is in scope on: org.dom4j.tree.DefaultElement
- jdbcTemplate查询返回对象或集合
- ios进行版本更新提示
- python---删除链表中的元素
- JVM内存解密【转】
- 算法学习之路:分治策略-归并排序-java实现
- php利用curl爬虫爬取微信公众号,防止ip封锁