2015-10-20 20 views
6

Tôi đã tìm cách bật MPAndroidChart để chỉ hiển thị giá trị (nhãn) của điểm dữ liệu khi được nhấp. Nhưng có vẻ như tôi không thể tìm thấy nó trực tuyến ngay cả trong tài liệu.Hiển thị giá trị khi nhấn [MPAndroidChart]

Tôi đã sử dụng line chart và những gì tôi muốn chỉ hiển thị nhãn của một điểm nhất định khi được nhấp.

Trả lời

11

1- Enable lạc trong biểu đồ

chart.setTouchEnabled(true); 

2 - Tạo 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 - Tạo view 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. Set quan điểm Marker trong bảng xếp hạng

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

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

Các vấn đề liên quan