我正在使用Android Graph View来显示折线图。我需要更改水平标签以获得漂亮的圆形数字。在附加的屏幕截图中,值为
True
我需要调整水平标签的位置和从它上面垂下的垂直线,以便标签读取
1
11:15
22:29
33:44
上述屏幕截图的代码使用此基类
0
11:00
23:00
33:44
和这个子类来呈现图形
protected TextView text;
protected GraphView graph;
@Override
public View onCreateView(final LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.ride_chart_fragment, null, false);
graph = (GraphView) view.findViewById(R.id.graph);
if (graph==null){
Log.e("Rides","Graph should not ne null");
return view;
}
Series series = linePoints();
if (series==null) return view;
graph.getGridLabelRenderer().setNumHorizontalLabels(4);
graph.addSeries(series);
setViewport(graph, series);
text = (TextView)view.findViewById(R.id.textView);
text.setVisibility(View.INVISIBLE);
graph.getGridLabelRenderer().setLabelFormatter(new DefaultLabelFormatter() {
@Override
public String formatLabel(double value, boolean isValueX) {
if (isValueX) {
// show normal x values
return UnitConverter.secondsToInterval((float) value);
} else {
return super.formatLabel(value, isValueX) + units(new Settings(inflater.getContext()));
}
}
});
graph.getGridLabelRenderer().setLabelVerticalWidth((int)getResources().getDimension(R.dimen.graph_label_vertical_width));
graph.getGridLabelRenderer().setLabelHorizontalHeight((int)getResources().getDimension(R.dimen.graph_label_vertical_height));
graph.getGridLabelRenderer().setGridColor(Color.parseColor("#20000000"));
graph.getGridLabelRenderer().setGridStyle(GridLabelRenderer.GridStyle.BOTH);
//graph.getGridLabelRenderer().
return view;
}
我没有看到任何方式使用库这样做,所以我正在考虑更改源代码。我错过了API吗?有人建议在代码中添加此功能的位置。
答案 0 :(得分:1)
你有两种方式:
1)(困难)使用动态视口查看源代码并找到完成humanRound的点(GridLabelRenderer.java)
理解并修改;)
2)使用固定视口并自行计算最小和最大边界,您可以更改numberOfHorizontalLabels以获得最佳匹配。