2016-11-30 56 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 –