package
com.gtappdevelopers.kotlingfgproject
import
android.os.Bundle
import
androidx.appcompat.app.AppCompatActivity
import
com.github.mikephil.charting.charts.BarChart
import
com.github.mikephil.charting.components.XAxis
import
com.github.mikephil.charting.data.BarData
import
com.github.mikephil.charting.data.BarDataSet
import
com.github.mikephil.charting.data.BarEntry
import
com.github.mikephil.charting.formatter.IndexAxisValueFormatter
class
MainActivity : AppCompatActivity() {
lateinit var barChart: BarChart
lateinit var barDataSet1: BarDataSet
lateinit var barDataSet2: BarDataSet
lateinit var barEntriesList: ArrayList<BarEntry>
var days = arrayOf(
"Sunday"
,
"Monday"
,
"Tuesday"
,
"Thursday"
,
"Friday"
,
"Saturday"
)
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
barChart = findViewById(R.id.idBarChart)
barDataSet1 = BarDataSet(getBarChartDataForSet1(),
"C++"
)
barDataSet1.setColor(resources.getColor(R.color.purple_200))
barDataSet2 = BarDataSet(getBarChartDataForSet2(),
"Java"
)
barDataSet2.setColor(resources.getColor(R.color.teal_200))
var data = BarData(barDataSet1, barDataSet2)
barChart.data = data
barChart.description.isEnabled =
false
var xAxis = barChart.xAxis
xAxis.valueFormatter = IndexAxisValueFormatter(days)
xAxis.setCenterAxisLabels(
true
)
xAxis.position = XAxis.XAxisPosition.BOTTOM
xAxis.setGranularity(1f)
xAxis.setGranularityEnabled(
true
)
barChart.setDragEnabled(
true
)
barChart.setVisibleXRangeMaximum(3f)
val barSpace =
0
.1f
val groupSpace =
0
.5f
data.barWidth =
0
.15f
barChart.xAxis.axisMinimum = 0f
barChart.animate()
barChart.groupBars(0f, groupSpace, barSpace)
barChart.invalidate()
}
private
fun getBarChartDataForSet1(): ArrayList<BarEntry> {
barEntriesList = ArrayList()
barEntriesList.add(BarEntry(1f, 1f))
barEntriesList.add(BarEntry(2f, 2f))
barEntriesList.add(BarEntry(3f, 3f))
barEntriesList.add(BarEntry(4f, 4f))
barEntriesList.add(BarEntry(5f, 5f))
return
barEntriesList
}
private
fun getBarChartDataForSet2(): ArrayList<BarEntry> {
barEntriesList = ArrayList()
barEntriesList.add(BarEntry(1f, 2f))
barEntriesList.add(BarEntry(2f, 4f))
barEntriesList.add(BarEntry(3f, 6f))
barEntriesList.add(BarEntry(4f, 8f))
barEntriesList.add(BarEntry(5f, 10f))
return
barEntriesList
}
}