Android 关于PieChart的基础使用以及对于pieChart扇形区域的事件监听

我是菜鸟写的不好请见谅,对您有帮助请关注 点赞 收藏

先导入MPAndroidChart-v2.1.5.jar

基础使用效果图:

在这里插入图片描述

废话不多说看代码:

超简单的布局文件编写:

// 是不是很简单
   <com.github.mikephil.charting.charts.PieChart
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:id="@+id/pieChart1"
        android:layout_margin="30dp"
        >

    </com.github.mikephil.charting.charts.PieChart>

下面是java代码:

private PieChart pieChart;
pieChart=findViewById(R.id.pieChart1);  //这个就不介绍了


   		pieChart.setDescription("人口数量");  //设置pieChart的描述
        pieChart.setDescriptionPosition(500f,30f);//设置描述语的位置
        pieChart.setDescriptionTextSize(14f);//设置描述语的大小
        pieChart.setDrawHoleEnabled(false);//设置是否为空心圆
        pieChart.setExtraOffsets(20f,20f,20f,20f);//设置piechart的位置
        Legend legend=pieChart.getLegend();
        legend.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER);//设置方块标记的位置

        pieChart.animateX(2000, Easing.EasingOption.EaseInElastic);//设置piechart的动画效果
        List<String> xvals=new ArrayList<>();//每个扇形的描述
        xvals.add("美国");
        xvals.add("中国");
        List<Entry> yvals=new ArrayList<>();//每个扇形的数据
        yvals.add(new Entry(30f,0));
        yvals.add(new Entry(69f,1));
        List<Integer> colors=new ArrayList<>();//每个扇形的颜色
        colors.add(Color.parseColor("#FF6633"));
        colors.add(Color.parseColor("#66CC99"));
        PieDataSet pieDataSet=new PieDataSet(yvals,"比较");
        pieDataSet.setColors(colors);//将List颜色设置
        pieDataSet.setValueTextSize(15f);//设置扇形上面字体的大小
        pieDataSet.setSliceSpace(5f);//设置扇形空隙的大小
        PieData pieData=new PieData(xvals,pieDataSet);
        pieData.setValueFormatter(new PercentFormatter());//设置百分比
        pieChart.setData(pieData);//数据填充

对于pieChart扇形区域的事件监听

点击使选中扇形变大并且可以做相应的时间处理
在这里插入图片描述

// 是不是很简单
   pieChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
    
    
            @Override
            public void onValueSelected(Entry entry, int i, Highlight highlight) {
    
    
                Log.e("",""+i+entry+highlight);  //打印日志   
            }

            @Override
            public void onNothingSelected() {
    
    
					//整体扇形的监听
            }
        });

日志:

E/: 0Entry, xIndex: 0 val (sum): 30.0Highlight, xIndex: 0, dataSetIndex: 0, stackIndex (only stacked barentry): -1
E/: 0Entry, xIndex: 1 val (sum): 69.0Highlight, xIndex: 1, dataSetIndex: 0, stackIndex (only stacked barentry): -1

我是菜鸟写的不好请见谅,对您有帮助请关注 点赞 收藏

谢谢您的鼓励

猜你喜欢

转载自blog.csdn.net/weixin_43423864/article/details/100064416