6
我一直在尋找一種方法來使MPAndroidChart在點擊時僅顯示數據點的值(標籤)。但是,即使在文檔中,我似乎也無法在網上找到它。點擊時顯示數值[MPAndroidChart]
我使用了line chart
,我想要的只是點擊時顯示某個點的標籤。
我一直在尋找一種方法來使MPAndroidChart在點擊時僅顯示數據點的值(標籤)。但是,即使在文檔中,我似乎也無法在網上找到它。點擊時顯示數值[MPAndroidChart]
我使用了line chart
,我想要的只是點擊時顯示某個點的標籤。
1- 啓用觸摸圖表中
chart.setTouchEnabled(true);
2 - 創建MarkerView
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() {
// this will center the marker-view horizontally
return -(getWidth()/2);
}
@Override
public int getYOffset() {
// this will cause the marker-view to be above the selected value
return -getHeight();
}
}
3 - 創建tvContent視圖
<?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:layout_marginTop="7dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:text=""
android:textSize="12dp"
android:textColor="@android:color/white"
android:ellipsize="end"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
4.設定圖表
CustomMarkerView mv = new CustomMarkerView (Context, R.layout.custom_marker_view_layout);
chart.setMarkerView(mv);
在視圖中標記