gpt4 book ai didi

mpandroidchart - 如何在 MPAndroid 折线图中突出显示选定的值

转载 作者:行者123 更新时间:2023-12-04 04:27:49 30 4
gpt4 key购买 nike

我已使用 setDrawValues(false) 禁用 LineChart 中的所有值。现在我希望当用户触摸该点时启用折线图中的特定值。我使用 highLightVales() 进行了尝试,但它对我不起作用。

@Override
public void onValueSelected(Entry entry, int i, Highlight highlight) {
//mchart.setHighlightEnabled(true);
//mchart.highlightValue(1,1);
Highlight[] highlights=mchart.getHighlighted();
mchart.highlightValues(highlights);
}

最佳答案

您需要将 MarkerView 添加到 LineChart

首先创建一个CustomMarkerView类。

public class CustomMarkerView extends MarkerView {

private TextView tvContent;

public CustomMarkerView (Context context, int layoutResource) {
super(context, layoutResource);
// this markerview only displays a textview
tvContent = (TextView) findViewById(R.id.tvContent);
}

// callbacks everytime the MarkerView is redrawn, can be used to update the
// content (user-interface)
@Override
public void refreshContent(Entry e, Highlight highlight) {
tvContent.setText("" + e.getVal()); // set the entry-value as the display text
}

@Override
public int getXOffset(float xpos) {
// this will center the marker-view horizontally
return -(getWidth() / 2);
}

@Override
public int getYOffset(float ypos) {
// this will cause the marker-view to be above the selected value
return -getHeight();
} }

在 .xml 中创建一个布局来代表您的标记。

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:background="@drawable/markerImage" >

<TextView
android:id="@+id/tvContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text=""
android:textSize="12dp"
android:textColor="@android:color/white"
android:ellipsize="end"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall" />

</RelativeLayout>

最后设置到图表上

    lineChart.setDrawMarkerViews(true);
CustomMarkerView customMarkerView = new CustomMarkerView(context, R.layout.custom_marker_view_layout);
lineChart.setMarkerView(customMarkerView);

并确保在图表上启用触摸。

lineChart.setTouchEnabled(true);

你会得到想要的结果。

enter image description here

关于mpandroidchart - 如何在 MPAndroid 折线图中突出显示选定的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31495649/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com