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 MPAndroidChart快速实现柱形图表 -> 正文阅读

[移动开发]Android MPAndroidChart快速实现柱形图表

一、添加依赖或者添加jar包

我添加依赖怎么都失败
所以我就下了个jar包,放进lib目录
这里就不
然后添加进library就OK

二、布局文件中添加图表控件

随便添加在哪

<com.github.mikephil.charting.charts.BarChart
            android:id="@+id/bar_chart2"
            android:layout_width="match_parent"
            android:layout_height="300dp" />

三、添加代码

将下面的各个方法函数添加进对应的Activcity的代码中

private void initBarChart() {
        barChart = findViewById(R.id.bar_chart2);
        barChart.getDescription().setEnabled(false); // 不显示描述
        barChart.setExtraOffsets(20, 20, 20, 20); // 设置饼图的偏移量,类似于内边距 ,设置视图窗口大小
        setAxis(); // 设置坐标轴
        setLegend(); // 设置图例
        setData();  // 设置数据
    }

    /**
     * 因为此处的 barData.setBarWidth(0.3f);,也就是说柱子的宽度是0.3f
     * 所以第二个柱子的值要比第一个柱子的值多0.3f,这样才会并列显示两根柱子
     */
    private void setData() {
        List<IBarDataSet> sets = new ArrayList<>();
        // 此处有两个DataSet,所以有两条柱子,BarEntry()中的x和y分别表示显示的位置和高度
        // x是横坐标,表示位置,y是纵坐标,表示高度
        List<BarEntry> barEntries1 = new ArrayList<>();
        barEntries1.add(new BarEntry(0, 1100f));
        barEntries1.add(new BarEntry(1, 1000f));
        barEntries1.add(new BarEntry(2, 900f));
        barEntries1.add(new BarEntry(3, 800f));
        barEntries1.add(new BarEntry(4, 700f));
        barEntries1.add(new BarEntry(5, 600f));
        barEntries1.add(new BarEntry(6, 500f));
        barEntries1.add(new BarEntry(7, 400f));
        barEntries1.add(new BarEntry(8, 300f));
        barEntries1.add(new BarEntry(9, 200f));
        BarDataSet barDataSet1 = new BarDataSet(barEntries1, "");
        barDataSet1.setValueTextColor(Color.RED); // 值的颜色
        barDataSet1.setValueTextSize(15f); // 值的大小
        barDataSet1.setColor(Color.parseColor("#1AE61A")); // 柱子的颜色
        barDataSet1.setLabel("蔬菜"); // 设置标签之后,图例的内容默认会以设置的标签显示
        // 设置柱子上数据显示的格式
        barDataSet1.setValueFormatter(new IValueFormatter() {
            @Override
            public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
                // 此处的value默认保存一位小数
                return value + "斤";
            }
        });

        sets.add(barDataSet1);
//        //********第二种柱形*********
        List<BarEntry> barEntries2 = new ArrayList<>();
        barEntries2.add(new BarEntry(0.3f, 210f));
        barEntries2.add(new BarEntry(1.3f, 450f));
        barEntries2.add(new BarEntry(2.3f, 430f));
        barEntries2.add(new BarEntry(3.3f, 440f));
        barEntries2.add(new BarEntry(4.3f, 180f));
        barEntries2.add(new BarEntry(5.3f, 180f));
        barEntries2.add(new BarEntry(6.3f, 180f));
        barEntries2.add(new BarEntry(7.3f, 180f));
        barEntries2.add(new BarEntry(8.3f, 180f));
        barEntries2.add(new BarEntry(9.3f, 180f));
        BarDataSet barDataSet2 = new BarDataSet(barEntries2, "");
        // 不显示第二根柱子上的值
        barDataSet2.setDrawValues(true); // 不显示值
        barDataSet2.setColor(Color.parseColor("#F7F709"));//柱子颜色
        barDataSet2.setValueTextColor(Color.RED); // 值的颜色
        barDataSet2.setValueTextSize(15f); // 值的大小
        barDataSet2.setLabel("水果");
        sets.add(barDataSet2);


        BarData barData = new BarData(sets);
        barData.setBarWidth(0.3f); // 设置柱子的宽度
        barChart.setData(barData);
    }

    private void setLegend() {
        Legend legend = barChart.getLegend();
        legend.setFormSize(12f); // 图例的图形大小
        legend.setTextSize(15f); // 图例的文字大小
        legend.setDrawInside(true); // 设置图例在图中
        legend.setOrientation(Legend.LegendOrientation.VERTICAL); // 图例的方向为垂直
        legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT); //显示位置,水平右对齐
        legend.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP); // 显示位置,垂直上对齐
        // 设置水平与垂直方向的偏移量
        legend.setYOffset(55f);
        legend.setXOffset(30f);
    }

    private void setAxis() {
        // 设置x轴
        XAxis xAxis = barChart.getXAxis();
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);  // 设置x轴显示在下方,默认在上方
        xAxis.setDrawGridLines(false); // 将此设置为true,绘制该轴的网格线。
        xAxis.setLabelCount(10);  // 设置x轴上的标签个数
        xAxis.setTextSize(15f); // x轴上标签的大小
        final String labelName[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
        // 设置x轴显示的值的格式
        xAxis.setValueFormatter(new IAxisValueFormatter() {
            @Override
            public String getFormattedValue(float value, AxisBase axis) {
                if ((int) value < labelName.length) {
                    return labelName[(int) value];
                } else {
                    return "";
                }
            }
        });
        xAxis.setYOffset(15); // 设置标签对x轴的偏移量,垂直方向

        // 设置y轴,y轴有两条,分别为左和右
        YAxis yAxis_right = barChart.getAxisRight();
        yAxis_right.setAxisMaximum(1200f);  // 设置y轴的最大值
        yAxis_right.setAxisMinimum(0f);  // 设置y轴的最小值
        yAxis_right.setEnabled(false);  // 不显示右边的y轴

        YAxis yAxis_left = barChart.getAxisLeft();
        yAxis_left.setAxisMaximum(1200f);
        yAxis_left.setAxisMinimum(0f);
        yAxis_left.setTextSize(15f); // 设置y轴的标签大小
    }
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 14:48:20  更:2021-09-22 14:50:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 12:17:33-

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