2015-10-20 16 views
6

Ho cercato un modo per consentire a MPAndroidChart di visualizzare solo il valore (etichetta) del punto dati quando si fa clic. Ma sembra che non ho potuto trovarlo online anche nella documentazione.Mostra valore quando selezionato [MPAndroidChart]

Ho utilizzato il line chart e quello che voglio è solo visualizzare l'etichetta del punto determinato quando si fa clic.

risposta

11

1- Abilita tocco nel grafico

chart.setTouchEnabled(true); 

2 - Creare 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 - Creare la vista 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. Impostare la vista Marker nel grafico

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

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

Problemi correlati