android 如何为折线图的每个数据图(x,y值)添加背景颜色:MP机器人图表

sqxo8psd  于 2023-02-02  发布在  Android
关注(0)|答案(1)|浏览(132)

我需要设置折线图的每个数据图(每个x/y值)的背景颜色。例如,在下图中,82.4值的背景设置为橙子(完全填充)。同样,我也想将此背景添加到其他每个值,即42.1、59.3和68.7。我使用的是MPDroidChart的折线图:实现“com.github.philJay:MPEandroidChart:v3.1.0”

bt1cpqcv

bt1cpqcv1#

您可以使用接受Drawable图标的Entry构造函数:

Entry(
    0f,
    0f,
    ResourcesCompat.getDrawable(
        resources,
        R.drawable.rect_blue_trans,
        context?.theme
    )
)

这个图标将被绘制在值标签的顶部(很不幸),所以你必须确保可绘制对象有一定的透明度,还要确保可绘制对象有固定的大小(在我的例子中是16dp x 16dp):

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size android:height="16dp" android:width="16dp" />
    <solid android:color="#662E349B" />
</shape>

然后,当从Entries创建DataSet时,请确保启用值和图标绘制。此外,您可能还需要尝试使用iconsOffset来正确定位图标:

dataSet.apply {
    setDrawValues(true)
    setDrawIcons(true)
    iconsOffset = MPPointF.getInstance(0f, -8f) // try different offsets for yourself
}

这将导致绘制的图表值如下所示(这里我有一些自己的样式,但应该大致类似):

相关问题