android图表视图y轴数被删除

时间:2016-03-26 02:40:33

标签: java android-studio android-graphview

当尝试使用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`

5 个答案:

答案 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轴不是日期,并且您想要舍入所有轴值,那么这将起作用。