当尝试使用android studio中的图形视图库创建折线图时,垂直线上的数字部分正在被删除。有人知道如何解决这个问题吗?
<com.jjoe64.graphview.GraphView
android:layout_width="300dp"
android:layout_height="200dip"
android:id="@+id/graph"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_gravity="center_horizontal"
android:nestedScrollingEnabled="false" />
final GraphView graph = (GraphView)findViewById(R.id.graph);
final LineGraphSeries<DataPoint> graphSeries = new LineGraphSeries<DataPoint>(new DataPoint[] {
}); // the points are added progressively`
答案 0 :(得分:5)
我有同样的问题。我目前发现的修复是在与图形关联的GridLabelRenderer中设置填充:
GraphView gv = (GraphView) findViewById(R.id.graph);
GridLabelRenderer glr = gv.getGridLabelRenderer();
glr.setPadding(32); // should allow for 3 digits to fit on screen
据我了解,graphview图形默认具有全屏宽度,因此它被Android app(16dp)的默认填充所截断。在GridLabelRenderer中设置此填充值会在图形的边缘添加更多填充,从而减少图形的实际图形区域,但为数字留出更多空间。
作为参考,与GridLabelRenderer关联的默认填充值为20。
我想有一个更优雅的解决方案,但这就是我能想到的。希望这可以帮助任何提出同样问题的人。
答案 1 :(得分:2)
您可以使用以下方法设置标签的宽度
mGraph.getGridLabelRenderer().setLabelVerticalWidth(int width)
也许你想根据位数设定值
祝你好运
答案 2 :(得分:1)
也许应该是
android:layout_height="200dp"
代替。最好的,您可以指定
graph.getViewport().setMinY(0.0);
graph.getViewport().setMaxY(100.0);
我的2美分:)
答案 3 :(得分:0)
谢谢我也最终设置了更大的填充。它对我有用,但必须有相对于标签进行调整。
答案 4 :(得分:0)
这是一个老问题,但对于具有相同问题的开发人员,您可以使用:
graph.getGridLabelRenderer().setHumanRounding(true);
注意:如果您使用日期作为x轴,则要将其设置为false,以使格式看起来不错。但是,如果您的x轴不是日期,并且您想要舍入所有轴值,那么这将起作用。