Android Graphview库未正确显示y轴,人为舍入设置为false
我正在使用github的graphview库,简称graphview 我把日期作为x轴,把重量以千克为单位作为y轴。图表是在一个片段中建立的。通过在AutoCompleteTextView中输入图形名称,可以将新图形添加到graphview:Android Graphview库未正确显示y轴,人为舍入设置为false,android,android-graphview,Android,Android Graphview,我正在使用github的graphview库,简称graphview 我把日期作为x轴,把重量以千克为单位作为y轴。图表是在一个片段中建立的。通过在AutoCompleteTextView中输入图形名称,可以将新图形添加到graphview: DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getActivity()); DateAsXAxisLabelFormatter dateAsXAxis
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;
}
});
所以问题来了,当添加第一个值时,y轴会变得疯狂,并添加许多值:
现在,如果启用人工取整,y值是固定的,但日期显示得很奇怪:
如果我重新加载页面(保存linegraphseries,重新加载片段并再次添加),问题就不再存在了。就我个人而言,我无法找出问题所在,请帮助。您必须覆盖GraphView,您要做的第一件事是调用init();在XML中,您还需要将com.jjoe64.graphview.graphview更改为类所在的位置(例如: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
}
}
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
}
}