Можно использовать MPAndroidChart с привязкой данных.
Создание настраиваемого адаптера привязки:
@BindingAdapter("android:setPieData")
fun setPieData(view: PieChart, data: List<SomeModel>?) {
val entries = mutableListOf<PieEntry>()
data.forEach { sweet ->
// Fill the entires list
}
// Set the entries, decorate the pie
}
Тогда в xml:
<com.github.mikephil.charting.charts.PieChart
android:id="@+id/consumed_data_sweets_rating_chart"
android:layout_width="match_parent"
android:layout_height="@dimen/chart_height"
android:layout_gravity="center"
android:layout_margin="@dimen/material_component_cards_top_and_bottom_padding"
android:setPieData="@{viewmodel.pieData}"
Где viewmodel.pieData
- это LiveData<List<SomeModel>> models
, переданное в классе ViewModel.
Таким образом, в основном вы должны использовать пользовательские адаптеры привязки данных для любых свойств диаграмм, которые вы хотите установить.
Ссылка на мой проект, найдите класс ChartBindingAdapters, чтобы увидеть мои пользовательские адаптеры.