#java #mpandroidchart
#java #mpandroidchart
Вопрос:
Я хотел бы отобразить метки xAxis как время в минутах и секундах mm:ss
на моей линейной диаграмме MPAndroidChart. Я попытался создать ValueFormatter, однако, похоже, что это IAxisValueFormatter
и getFormattedValue
устарело.
У меня 40 кадров в секунду, поэтому для каждого 40-го кадра метки должны увеличиваться с 00: 01 и меняться с 00:59 на 01:00.
Можете ли вы помочь мне достичь этого?
Мой код до сих пор для valueformatter является:
xAxis.setValueFormatter(new MyFormatter());
public class MyFormatter implements IAxisValueFormatter {
@Override
public String getFormattedValue(float value, AxisBase axis) {
int second = (int) value / 40
return second "s" //make it a string and return
}
Ответ №1:
Попробуйте это:
import android.util.Log;
import com.github.mikephil.charting.components.AxisBase;
import com.github.mikephil.charting.formatter.ValueFormatter;
public class XAxisValueFormatter extends ValueFormatter {
@Override
public String getAxisLabel(float value, AxisBase axis) {
Log.d("ADebugTag", "Value: " Float.toString(value));
int axisValue = (int) value/40;
if (axisValue >= 0) {
String sh = String.format("d:d", (axisValue / 3600 * 60 ((axisValue % 3600) / 60)), (axisValue % 60));
return sh;
} else {
return "";
}
}
}