gpt4 book ai didi

android - Graphview 库在人为舍入设置为 false 的情况下无法正确显示 y 轴

转载 作者:行者123 更新时间:2023-11-30 00:30:07 25 4
gpt4 key购买 nike

我正在使用来自 github 的 graphview 库,简称为 Graphview。

我将日期作为 x 轴,将以公斤为单位的重量作为 y 轴。该图设置在一个 fragment 中。您可以通过在自动完成 TextView 中输入图形名称来将新图形添加到图形 View :

   DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getActivity());
DateAsXAxisLabelFormatter dateAsXAxisLabelFormatter = new
DateAsXAxisLabelFormatter(getActivity(), DateFormat.getDateInstance());
graphView.getGridLabelRenderer().setLabelFormatter(dateAsXAxisLabelFormatter);
graphView.getGridLabelRenderer().setNumHorizontalLabels(3);// only 4 because of the space
graphView.getGridLabelRenderer().setHumanRounding(false);
graphView.getViewport().setXAxisBoundsManual(true);
graphView.getViewport().setYAxisBoundsManual(false);

String[] names= getNames();
ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(),
android.R.layout.simple_dropdown_item_1line, names);
addGraphValue.setAdapter(adapter);

addGraphValue.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH){
addToGraph(addGraphValue.getText().toString());
}
return true;
}
});

addToGraph 执行一项功能,其中根据某些标准找到 y 值,与 addGraphValue autoCompleteTextview 中的文本有关。找到该值后,会将其与其对应的日期一起添加到 lineGraphSeries 中。在需要发生多次后,该系列将添加到图中:

          for(/*not important*/){
//Finding the y-value
dataPoint = new DataPoint(date, y);
mLineGraphSeries.appendData(dataPoint, false, 100);
}

mLineGraphSeries.setColor(mColors[position]);
graphView.addSeries(mLineGraphSeries);
mLineGraphSeries.setDrawDataPoints(true);

所以问题来了,当添加第一个值时,y 轴变得疯狂并增加了许多值: Picture of it happening

现在,如果我打开人工舍入,y 值是固定的,但日期显示很奇怪: Picture of that

如果我重新加载页面(保存线图系列,重新加载 fragment 并再次添加),问题就不再存在。对于我的生活,我无法弄清楚哪里出了问题,请帮忙。

最佳答案

您必须覆盖 GraphView 并且您做的第一件事是调用 init();同样在 XML 中,您需要将 com.jjoe64.graphview.GraphView 更改为您所在类(class)的位置(例如:com.myName.android.myapplication.app.CustomGraphView

这应该可以解决您的问题

public class CustomGraphView extends GraphView {
public CustomGraphView(Context context) {
super(context);
}
public CustomGraphView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomGraphView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public void init() {
super.init();
// set the custom style
}
}

关于android - Graphview 库在人为舍入设置为 false 的情况下无法正确显示 y 轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44588458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com