-
[Kotlin] MpAndroidChart 사용하기 / 클릭하면 x축 label 출력AOS 2022. 1. 5. 01:43반응형
https://github.com/PhilJay/MPAndroidChart
1. build.gradle에 mpandroidchart 추가
repositories { maven { url 'https://jitpack.io' } } dependencies { implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' }
2. 원하는 곳에 xml 추가
<com.github.mikephil.charting.charts.LineChart android:id="@+id/chart" android:layout_width="match_parent" android:layout_height="match_parent" />
3. 코드
val lineChart: LineChart = binding.chart //data 가져오기 val dateList = mutableListOf<String>() val priceList = mutableListOf<String>() it.forEach { element -> dateList.add(element.date) priceList.add(element.price) } val entries = ArrayList<Entry>() for(i in 0 until priceList.size){ entries.add(Entry(i.toFloat(), priceList[i].toFloat())) } val labels = ArrayList<String>() for(i in 0 until dateList.size){ labels.add(dateList[i]) } val dataset= LineDataSet(entries, "") lineChart.xAxis.valueFormatter=IndexAxisValueFormatter(labels) //클릭시 x축 label 출력 lineChart.setOnChartValueSelectedListener(object: OnChartValueSelectedListener{ override fun onValueSelected(e: Entry, h: Highlight){ val xAxisLabel = e.x.let{ lineChart.xAxis.valueFormatter.getAxisLabel(it, lineChart.xAxis) } binding.test.text= xAxisLabel } override fun onNothingSelected() { } }) lineChart.getTransformer(YAxis.AxisDependency.LEFT) lineChart.xAxis.position = XAxis.XAxisPosition.BOTTOM val data = LineData(dataset) lineChart.data = data lineChart.invalidate()
반응형'AOS' 카테고리의 다른 글
[Andorid] local.properties를 이용하여 API URL, KEY 안전하게 숨기기 (0) 2023.06.13 [Android] 무한스크롤 Infinite Scroll (0) 2023.05.17 [Android] 이미지 라이브러리(glide)없이 URL로 이미지 나타내기 (0) 2023.05.12 [Android] LiveData 와 Observer Pattern (0) 2023.03.20 [Android] 안드로이드 모듈화 Modularization 적용하기 (0) 2023.03.04