我需要设置折线图的每个数据图(每个x/y值)的背景颜色。例如,在下图中,82.4值的背景设置为橙子(完全填充)。同样,我也想将此背景添加到其他每个值,即42.1、59.3和68.7。我使用的是MPDroidChart的折线图:实现“com.github.philJay:MPEandroidChart:v3.1.0”
bt1cpqcv1#
您可以使用接受Drawable图标的Entry构造函数:
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来正确定位图标:
Entries
DataSet
iconsOffset
dataSet.apply { setDrawValues(true) setDrawIcons(true) iconsOffset = MPPointF.getInstance(0f, -8f) // try different offsets for yourself }
这将导致绘制的图表值如下所示(这里我有一些自己的样式,但应该大致类似):
1条答案
按热度按时间bt1cpqcv1#
您可以使用接受
Drawable
图标的Entry
构造函数:这个图标将被绘制在值标签的顶部(很不幸),所以你必须确保可绘制对象有一定的透明度,还要确保可绘制对象有固定的大小(在我的例子中是16dp x 16dp):
然后,当从
Entries
创建DataSet
时,请确保启用值和图标绘制。此外,您可能还需要尝试使用iconsOffset
来正确定位图标:这将导致绘制的图表值如下所示(这里我有一些自己的样式,但应该大致类似):