mpandroidchart piechart 用highlightValue方法实现饼图设置默认选中

150 篇文章 12 订阅

项目需求需要设置默认选中,搞了挺久,折腾出来一个解决方案,

在饼图初始化全部配置后,也就是最后设置data后进行修改

API:

public void highlightValue(float x, int dataSetIndex, boolean callListener) {
    highlightValue(x, Float.NaN, dataSetIndex, callListener);
}


第一个参数x为 饼图的第几个色块的下标,

dataSetIndex  :因为我只有一个饼图,这个地方就是0,

callListener:可以理解为是否触发饼图上的触摸事件,我设置了监听事件,需要在点击对应色块后,更新数据,所以就是true。

比如想要设置第二个色块默认选中放大

那就添加 highlightValue(1f,0,true)

我的需求是设置最大值默认放大。代码就是下面这样子:

pieList是暂存 PieEntry的 list

初始化饼图数据

private var pieList = ArrayList<PieEntry>()
for (item in it) {
    pieList.add(
        PieEntry(
            item.rate.replace("%", "").toFloat() / 100,
            item.channel.plus(",").plus(item.gmv).plus(",").plus(item.rate)
        )
    )
}


最后加上这段代码:

try {
    val index = pieList.indexOfFirst {
        it.y == mPieData?.dataSet?.yMax
    }
    highlightValue(index.toFloat(), 0, true)
} catch (e: Exception) {
    Logger.e("data is null or empty !!!")
}


————————————————
版权声明:本文为CSDN博主「_东风笑西风」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yeyuewushang/article/details/118092058

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 MPAndroidChart 绘制饼图,你需要进行以下步骤: 1.在你的项目中添加 MPAndroidChart 依赖。你可以在 gradle 文件中添加以下代码: ``` implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' ``` 2.在你的布局文件中添加一个 PieChart 视图: ``` <com.github.mikephil.charting.charts.PieChart android:id="@+id/pie_chart" android:layout_width="match_parent" android:layout_height="match_parent"/> ``` 3.在你的 Activity 或 Fragment 中找到这个 PieChart 视图,并为它设置一些属性: ``` PieChart pieChart = findViewById(R.id.pie_chart); pieChart.setUsePercentValues(true); // 设置使用百分比值 pieChart.getDescription().setEnabled(false); // 隐藏描述 pieChart.setExtraOffsets(5, 10, 5, 5); // 设置间距 pieChart.setDrawHoleEnabled(true); // 绘制中间的空心圆 pieChart.setHoleColor(Color.WHITE); // 设置空心圆的颜色 pieChart.setTransparentCircleRadius(61f); // 设置透明圆的半径 pieChart.setHoleRadius(58f); // 设置空心圆的半径 pieChart.setRotationAngle(0); // 设置起始角度 pieChart.setRotationEnabled(true); // 可以旋转 pieChart.setHighlightPerTapEnabled(true); // 可以高亮显示 ``` 4.为饼图添加数据。首先创建一个 ArrayList<PieEntry>,然后将每个数据添加到其中: ``` ArrayList<PieEntry> entries = new ArrayList<>(); entries.add(new PieEntry(18.5f, "Green")); entries.add(new PieEntry(26.7f, "Yellow")); entries.add(new PieEntry(24.0f, "Red")); entries.add(new PieEntry(30.8f, "Blue")); ``` 5.将数据添加到 PieDataSet 中,并为数据集设置一些属性: ``` PieDataSet dataSet = new PieDataSet(entries, "Election Results"); dataSet.setSliceSpace(3f); // 设置每个扇形之间的间距 dataSet.setSelectionShift(5f); // 设置点击时的扇形半径 dataSet.setColors(ColorTemplate.JOYFUL_COLORS); // 设置颜色 ``` 6.创建一个 PieData 对象,将数据集传递给它: ``` PieData data = new PieData(dataSet); data.setValueTextSize(10f); // 设置文字大小 data.setValueTextColor(Color.YELLOW); // 设置文字颜色 ``` 7.将 PieData 对象设置PieChart 中: ``` pieChart.setData(data); pieChart.invalidate(); // 刷新图表 ``` 现在,你就可以显示你的饼图了。上面的代码只是一个简单的示例,你可以根据自己的需求调整图表的属性和样式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值