2016-06-29 2 views
1

Я использую mpchart, чтобы нарисовать диаграммы. Мне нужно увеличить размер круга точки пересечения маркера и линейного набора данных. Как я могу это достичь? enter image description hereКак рисовать круг в выделенной точке в линейной диаграмме?

Я где-то читал, что мы можем добавить еще один набор данных с выделенной точкой и увеличить размер круга. Это действительно хороший подход, если мой маркер будет перетаскиваться назад и вперед, и мне придется обновлять новый набор данных очень часто?

+0

привет. как нарисовать диаграмму окружности с половиной строки вместо линейной диаграммы (например, ваша вышеприведенная строка на вашем изображении) – kemdo

ответ

7

При использовании библиотеки MpChart библиотека содержит класс MarkerView, который помогает нам вставлять маркеры для отображения выбранного значения в диаграмме. Мы можем использовать этот класс MarkerView для отображения любого вида просмотра для выбранных данных диаграммы.

Так что для точки я создал новый класс ChartMarker и расширенный MarkerView класса. Затем в конструкторе я передал макет, содержащий представление изображения с точкой, как src, в супер.

public ChartMarker(Context context) { 
    //the super will take care of displaying the layout 
    super(context, R.layout.layout_dot); 
} 

Наконец установить экземпляр ChartMarker на диаграмме через chart.setMarkerView()

ChartMarker elevationMarker = new ChartMarker(getActivity()); 
elevationChart.setMarkerView(elevationMarker); 

И для layout_dot.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

<ImageView 
    android:background="@drawable/dot" 
    android:layout_width="5dp" 
    android:layout_height="5dp" /> 

</LinearLayout> 
+0

Спасибо Yogesh !! Работала отлично. Мне пришлось установить set getXOffset в - (getWidth()/2) и getYOffset - (getHeight()/2); в переопределенных методах, чтобы центрировать точку. – Heisenberg

+0

Да! вам нужно дать некоторые значения смещения, чтобы исправить центрирование точки. Рад помочь – Yogesh

Смежные вопросы