Для Java:
Добавьте свои XAxis
метки в ArrayList
Используйте следующий код для отображения даты.
final ArrayList<String> xLabel = new ArrayList<>();
Calendar calendar = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");
for(int i=0;i<=50;i++){
calendar.add(Calendar.DAY_OF_YEAR, i);
Date date= calendar.getTime();
String txtDate= dateFormat.format(date);
xLabel.add(txtDate);
}
// or use some other logic to save your data in list. For ex.
for(i=1; i<50; i+=2)
{
xLabel.add(""+3*i);
}
затем используйте эту метку в setValueFormatter.
XAxis xAxis = mChart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setDrawGridLines(false);
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return xLabel.get((int)value);
}
});
Для Kotlin:
val xLabel = ArrayList<String>()
val calendar = Calendar.getInstance()
val dateFormat = SimpleDateFormat("dd-MMM-yyyy")
for (i in 0..50) {
calendar.add(Calendar.DAY_OF_YEAR, i)
val date = calendar.time
val txtDate = dateFormat.format(date)
xLabel.add(txtDate)
}
// or use some other logic to save your data in list. For ex.
var i = 1
while (i < 50) {
xLabel.add("" + 3 * i)
i += 2
}
, затем используйте этометка в setValueFormatter.
val xAxis = mChart.xAxis
xAxis.position = XAxis.XAxisPosition.BOTTOM
xAxis.setDrawGridLines(false)
xAxis.valueFormatter = IAxisValueFormatter { value, axis -> xLabel[value.toInt()] }