如何将“ LineChart”中的图标设置为MPAndroidChart中的选定位置?

时间:2018-10-16 05:34:37

标签: android mpandroidchart

我有一个在LineChart上绘制的入口点列表。现在,我想将图标设置为特定点。如何在LineChart中将图标设置或绘制到我在MPAndroidChart中选择的位置?

2 个答案:

答案 0 :(得分:0)

您可以使用3个参数Entry构造函数将图标添加到所选点,其中第三个参数是Drawable

公共条目(浮动x,浮动y,android.graphics.drawable.Drawable图标)

参数: x-x值 y-y值(条目的实际值) 图标-图标图像

Ref: MPAndroidChart v3.0.3 JavaDoc

示例:

    ArrayList<Entry> values = new ArrayList<Entry>();
    values.add(new Entry (x, y, ContextCompat.getDrawable(getApplicationContext(),R.drawable.star)));

您可以通过在LineDataSet构造函数中添加Drawable,用整个Entry中的图标标记一个点。

答案 1 :(得分:0)

我知道这是一个老问题,但这是我的解决方案,以防万一仍然有人需要它。

首先,您需要在数据集上调用 @-webkit-keyframes loader-spinner { 0% { -webkit-transform: translate3d(-50%, -50%, 0) rotate(0deg); } 100% { -webkit-transform: translate3d(-50%, -50%, 0) rotate(360deg); } } @-moz-keyframes loader-spinner { 0% { -moz-transform: translate3d(-50%, -50%, 0) rotate(0deg); } 100% { -moz-transform: translate3d(-50%, -50%, 0) rotate(360deg); } } @-ms-keyframes loader-spinner { 0% { -ms-transform: translate3d(-50%, -50%, 0) rotate(0deg); } 100% { -ms-transform: translate3d(-50%, -50%, 0) rotate(360deg); } } @keyframes loader-spinner { 0% { transform: translate3d(-50%, -50%, 0) rotate(0deg); } 100% { transform: translate3d(-50%, -50%, 0) rotate(360deg); } } .loader-spinner { display: none; top: 0; left: 0; right: 0; bottom: 0; height: 100vh; background-color: rgba(255,255,255,0.5); opacity: 1; z-index: 99; position: absolute; transition: opacity linear 0.1s; } .loader-spinner::before { -webkit-animation: 2s linear infinite loader-spinner; -moz-animation: 2s linear infinite loader-spinner; -ms-animation: 2s linear infinite loader-spinner; -o-animation: 2s linear infinite loader-spinner; animation: 2s linear infinite loader-spinner; border: solid 3px #eee; border-bottom-color: #EF6565; border-radius: 50%; content: ""; height: 40px; left: 50%; opacity: inherit; position: absolute; top: 50%; -webkit-transform: translate3d(-50%, -50%, 0); -moz-transform: translate3d(-50%, -50%, 0); -ms-transform: translate3d(-50%, -50%, 0); transform: translate3d(-50%, -50%, 0); -webkit-transform-origin: center; -moz-transform-origin: center; -ms-transform-origin: center; transform-origin: center; width: 40px; will-change: transform; } 。然后,您需要将您的条目定义为班级内部的成员,以便以后可以重置它。

setDrawIcons(true)

private var selectedEntry: Entry? = null 内,您需要将onValueSelected图标设置为null(如果存在),并为新的selectedEntry's点设置图标。

selectedEntry