IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Android 开发第三方框架制作条形图、折线图、饼状图、水平条形图 -> 正文阅读

[游戏开发]Android 开发第三方框架制作条形图、折线图、饼状图、水平条形图

Android 第三方框架MPAndroidChart-v3.1.0的简单使用

前言

文章内容主要是如何去用条形图、折线图、饼状图、水平条形图。

一些方法的的使用意思都是本人自己理解的仅供大家学习参考!

引入库

GitHub地址:https://github.com/PhilJay/MPAndroidChart

'com.github.PhilJay:MPAndroidChart:v3.1.0'

布局

			<!--条形图-->
            <com.github.mikephil.charting.charts.BarChart
                android:id="@+id/barchart"
                android:layout_width="match_parent"
                android:layout_height="300dp" />

			<!--折线图-->
            <com.github.mikephil.charting.charts.LineChart
                android:id="@+id/linechart"
                android:layout_width="match_parent"
                android:layout_height="300dp" />


			<!--饼状图-->
            <com.github.mikephil.charting.charts.PieChart
                android:id="@+id/pieChart"
                android:layout_width="match_parent"
                android:layout_height="300dp" />

			<!--水平条形图-->
            <com.github.mikephil.charting.charts.HorizontalBarChart
                android:id="@+id/Hbarchart"
                android:layout_width="match_parent"
                android:layout_height="300dp" />

初始化动画

 		Hbarchart.animateX(500);  // 设置X轴的动画
        linechart.animateXY(500,500);// 设置X轴和Y轴的动画
        pieChart.animateXY(500,500);// 设置X轴和Y轴的动画
        barchart.animateXY(500,500);// 设置X轴和Y轴的动画

条形图

代码

		barchart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM); // 设置X显示在哪个位置
        barchart.getAxisRight().setEnabled(false); // 隐藏右边的Y轴
        barchart.getDescription().setEnabled(false);  // 隐藏详细文字介绍

		// 初始化数据
        List<BarEntry> barEntries1 = new ArrayList<>();
        List<BarEntry> barEntries2 = new ArrayList<>();

        List<String> stringList = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            barEntries1.add(new BarEntry(i, new Random().nextInt(100)));
            // new BarEntry(位置, 值);
            barEntries2.add(new BarEntry((float) (i+0.3), new Random().nextInt(100)));
            stringList.add("测试" + i);
        }


		// 定义BarDataSet
        BarDataSet barDataSet1 = new BarDataSet(barEntries1, "测试1");
        BarDataSet barDataSet2 = new BarDataSet(barEntries2, "测试2");

		// 设置BarDataSet显示的颜色
        barDataSet1.setColor(getResources().getColor(R.color.red));
        barDataSet2.setColor(getResources().getColor(R.color.blue));

		// 定义BarData 将刚刚定义的BarDataSet传进去
        BarData barData = new BarData(barDataSet1, barDataSet2);

		// 设置显示的宽度
        barData.setBarWidth(0.3f);
		// 设置X轴上显示的值
        barchart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(stringList));
		// 设置粒度 1的话就是默认X轴的值都显示
        barchart.getXAxis().setGranularity(1);
		// 传入BarData
        barchart.setData(barData);

效果

在这里插入图片描述

折线图

代码

		linechart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);// 设置X显示在哪个位置
        linechart.getAxisRight().setEnabled(false);// 隐藏右边的Y轴
        linechart.getDescription().setEnabled(false);// 隐藏详细文字介绍

		// 初始化数据
        List<Entry> list = new ArrayList<>();
        List<String> stringList = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            list.add(new Entry(i, new Random().nextInt(100)));
            stringList.add("测试" + i);
        }
		// 设置粒度 1的话就是默认X轴的值都显示
        linechart.getXAxis().setGranularity(1);
		// 设置X轴上显示的值
        linechart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(stringList));
		// 定义LineDataSet
        LineDataSet lineDataSet = new LineDataSet(list, "测试");
		// 定义LineData 将lineDataSet传入 
        LineData lineData = new LineData(lineDataSet);
		// 传入lineData
        linechart.setData(lineData);

效果

在这里插入图片描述

饼状图

代码

		pieChart.getDescription().setEnabled(false);// 隐藏详细文字介绍
		// 初始化数据
        List<PieEntry> list = new ArrayList<>();

        for (int i = 0; i < 5; i++) {
            list.add(new PieEntry(new Random().nextInt(100), "测试" + i));
        }
		
		// 定义PieDataSet
        PieDataSet pieDataSet = new PieDataSet(list, "图例1");

		
        List<Integer> colors = new ArrayList<>();

        colors.add(getResources().getColor(R.color.red));
        colors.add(getResources().getColor(R.color.blue));
        colors.add(getResources().getColor(R.color.orang));

		// 设置颜色 
		// 颜色设置按一对一对于设置,当颜色的数量小于显示数据的数量时将重复使用
        pieDataSet.setColors(colors);

		// 设置文字内容显示的位置(可以不设置)默认在图里显示文字
        pieDataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
        pieDataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
		
		// 定义PieData传入pieDataSet
        PieData pieData = new PieData(pieDataSet);
		
		// 设置数值后面带百分比格式
        pieData.setValueFormatter(new PercentFormatter(pieChart));
		// 使用百分比后的数值
        pieChart.setUsePercentValues(true);
		// 设置数值显示的颜色(默认黑色)
        pieData.setValueTextColor(Color.BLACK);
		// 设置数值显示的大小
        pieData.setValueTextSize(17);
		
		// 设置文字的颜色(默认白色)
        pieChart.setEntryLabelColor(Color.BLACK);
		
		// 传入pieData
        pieChart.setData(pieData);

效果

在这里插入图片描述

水平条形图(和条形图的用法差不多)

水平条形图可以想成就是将一个条形图进行了顺时针90°的旋转形成的

代码

		Hbarchart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);// 设置X显示在哪个位置
        Hbarchart.getAxisRight().setEnabled(false);// 隐藏右边的Y轴
        Hbarchart.getDescription().setEnabled(false);// 隐藏详细文字介绍

		// 初始化数据
        List<BarEntry> list = new ArrayList<>();

        List<String> stringList = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            list.add(new BarEntry(i, new Random().nextInt(100)));
            stringList.add("测试" + i);
        }


		// 定义BarDataSet
        BarDataSet barDataSet = new BarDataSet(list, "测试");
		
		// 设置BarDataSet显示的颜色
        barDataSet.setColor(getResources().getColor(R.color.red));
		
		// 定义BarData
        BarData barData = new BarData(barDataSet);
		
		// 设置X轴显示的文字内容
        Hbarchart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(stringList));
		// 设置粒度 1的话就是默认X轴的值都显示
        Hbarchart.getXAxis().setGranularity(1);
		// 传入BarData
        Hbarchart.setData(barData);

效果

在这里插入图片描述

最后希望这篇文章能帮助到各位!!!

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章           查看所有文章
加:2022-04-23 11:07:26  更:2022-04-23 11:08:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 21:55:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码