Kotlin使用MPAndroidChart实现饼图圆角及缩小透明圈尺寸问题
修改方案
1. 实现饼图切片圆角
- 你当前代码中关闭了圆角绘制配置,将
pieChart.setDrawRoundedSlices(false)修改为pieChart.setDrawRoundedSlices(true)开启圆角 - 给数据集添加圆角半径配置,新增一行
dataSet.roundedSlicesRadius = 15f,可自行调整数值控制圆角弧度大小
2. 缩小中心透明亮色区域
中心透明亮色区域的尺寸由中心洞半径和透明圈半径两个参数共同控制,按你的需求调整两个参数即可:
- 新增中心洞基础半径配置:
pieChart.holeRadius = 70f(数值为占饼图总半径的百分比,数值越小中心洞越小) - 将你当前设置的
pieChart.transparentCircleRadius = 95F调整为更小的数值,例如75f,注意该数值需要略大于holeRadius才能显示出半透明的边缘效果
如果觉得切片之间的间距过大,可适当调小dataSet.sliceSpace的数值,例如改为5f适配圆角效果。
修改后完整代码
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setUpSelectionPieChart() } private fun setUpSelectionPieChart() { // 构造数据集 val dataArray = ArrayList<PieEntry>() dataArray.add(PieEntry(38f)) dataArray.add(PieEntry(14f)) dataArray.add(PieEntry(14f)) dataArray.add(PieEntry(34f)) val dataSet = PieDataSet(dataArray, "") dataSet.valueTextSize=20f dataSet.valueTextColor=Color.WHITE // 新增圆角半径配置 dataSet.roundedSlicesRadius = 15f // 配置切片颜色 val colorSet = java.util.ArrayList<Int>() colorSet.add(Color.rgb(255,107,107)) // 红色 colorSet.add(Color.rgb(173,232,244)) // 蓝色 colorSet.add(Color.rgb(216,243,220)) // 绿色 colorSet.add(Color.rgb(255,230,109)) // 黄色 dataSet.setColors(colorSet) // 可按需调整切片间距 dataSet.sliceSpace = 5F val data = PieData(dataSet) // 个性化配置 // 调整透明圈半径 pieChart.transparentCircleRadius = 75F pieChart.isRotationEnabled = false // 开启圆角绘制 pieChart.setDrawRoundedSlices(true) // 新增中心洞半径配置 pieChart.holeRadius = 70f // 图表描述配置 pieChart.description.text = "饼图" pieChart.description.textSize = 20f // 图表数据及其他样式配置 pieChart.data = data pieChart.centerTextRadiusPercent = 0f pieChart.isDrawHoleEnabled = true pieChart.legend.isEnabled = false pieChart.description.isEnabled = false } }
内容的提问来源于stack exchange,提问作者Swifter91
相关产品推荐
相关产品推荐

