2016-11-30 78 views
0

我很难尝试将方向传感器示例中的水平图旋转90度,使得条形图指向(或远离)历史绘图。Androidplot方向传感器中的条形图旋转

我试过xml file中的android:orientation="",但没有任何好的结果。

它似乎不是简单的交换X和Y的问题,因为酒吧必须从不同的边缘开始。

在我自己的代码,我已经取代: - SimpleXYSeries.ArrayFormat.Y_VALS_ONLYSimpleXYSeries.ArrayFormat.XY_VALS_INTERLEAVED因为我其实密谋在java文件Histogram而非Single bar

但是我无法有效地旋转该地块(历史剧情需要保持原样。)

回答

1

编辑:
Androidplot 1.3.1已经发布添加了支持旋转图形控件:

XML:

ap:graphRotation="ninety_degrees" 

的Java

plot.getGraph().setRotation(Widget.Rotation.NINETY_DEGREES); 

除非你使用它们,你还需要禁用域/范围光标(通常是隐藏的起源敌后):

plot.getGraph().setDomainCursorPaint(null); 
plot.getGraph().setRangeCursorPaint(null); 

原来的答复(对任何人没有上1.3。 1):

今天不直接支持,但可以很容易地添加。现在,您可以通过在每个渲染周期之前将画布旋转90度,然后恢复,实现基本效果。如果你的情节空间恰好是方形的,这将毫无问题地工作。否则,画布的不可变高度和宽度将需要转换以考虑改变的高宽比,这可能是可能的,但可能不值得涉及的头痛。

这里有一个快速和肮脏的方式旋转一个情节:

plot.addListener(new PlotListener() { 
       @Override 
       public void onBeforeDraw(Plot source, Canvas canvas) { 
        final float h = canvas.getHeight()/2; 
        final float w = canvas.getWidth()/2;     
        canvas.save(); 
        canvas.rotate(90, w, h); 

       @Override 
       public void onAfterDraw(Plot source, Canvas canvas) { 
        canvas.restore(); 
       } 
    });*/ 

所有的这种方法的缺点可以通过不是扩展XYGraphWidget并覆盖doOnDraw(帆布,RectF)来解决,因为我们可以变异的RectF如所须。尽管将新实例连接回XYPlot并将xml attrs重新应用到窗口小部件,但还有很多工作要做。

+0

我已经更新了我的答案,现在支持已添加到1.3.1 – Nick

+0

感谢您添加此昵称 –

+0

感谢您添加此昵称。我尝试了XML解决方案。它运作良好。但是可以旋转270度(或-90度)。此刻,我的应用程序中旋转的情节是颠倒的。再次感谢Dean –