2015-10-20 27 views
6

Szukałem sposobu, aby MPAndroidChart wyświetlał tylko wartość (etykieta) punktu danych po kliknięciu. Ale wydaje się, że nie mogłem go znaleźć w Internecie nawet w dokumentacji.Pokaż wartość po dotknięciu [MPAndroidChart]

Użyłem line chart i chcę tylko wyświetlić etykietę określonego punktu po kliknięciu.

Odpowiedz

11

1- Włącz urządzenie w tabeli

chart.setTouchEnabled(true); 

2 - Tworzenie 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 - Tworzenie widok 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. Ustaw Marker widok na wykresie

CustomMarkerView mv = new CustomMarkerView (Context, R.layout.custom_marker_view_layout); 
chart.setMarkerView(mv); 

https://github.com/PhilJay/MPAndroidChart/wiki/MarkerView