2012-06-19 23 views
11

嗨我試圖開發一個現場測試應用程序,我已經檢索像信號強度的鄰近單元格的信息。如何在Wifi分析器應用程序中繪製android圖形?

所以我的問題是:

如何顯示與 X軸和實時Y軸上的信號強度不同的相鄰小區的圖形?示例 here

我已經有5或6個相鄰的細胞,每個細胞的信號強度。

+0

你的問題到底是什麼?它是否獲得了與鄰近單元格相比的優勢,還是顯示它的問題?如果您已經擁有數據,則可以將其繪製在Canvas – Guardanis

+0

上以供評論。我想獲得實力與鄰居之間的關係,當然也可以在後面展示。我已經有了這些數據,所以問題是如何將它繪製在畫布上,就像你說的那樣! – 13KZ

+1

如果您以前從未使用過Canvas,那麼這是一個很好的開始:http://www.tutorialforandroid.com/2009/06/drawing-with-canvas-in-android.html - 如果您已經有數據,只是循環點和繪製它們(圓圈,通過它們的線等) – Guardanis

回答

12

寧可使用Canvas手動繪製自己的圖形,您可以使用可用的圖表引擎庫,這樣做也會容易得多。

AchartEngineChartDroidaFreeChartMPAndroidChart

對於3D圖表Charts4J

我怎樣才能上 X軸和Y軸上的信號強度顯示與不同的相鄰小區的曲線圖實時?

我在一個應用程序中使用了aChart引擎。這個庫有一個完整的API演示,所以它很容易理解如何使用它。

+2

我想添加[aFreeChart](https://code.google.com/p/afreechart/),它是jFreeChart的一個端口,列表中。 – Ivin

+0

你好歡迎,謝謝@Ivin – MKJParekh

+0

非常感謝@Ivin – 13KZ

1

我不知道要開發哪種類型的圖表,因爲鏈接上有不同的類型。但是我在android中開發了一個實時線圖。我使用畫布繪製線條。

public class GraphView extends View 
{ 
    ... 
    private final Rect rect = new Rect(); 
    private final Paint linePaint = new Paint(); 
    private final Paint backgroundPaint = new Paint(); 
    private float[] points; 

    public GraphView(final Context context, final AttributeSet aSet) 
    { 
     super(context, aSet); 
    } 
    @Override 
    protected void onDraw(final Canvas canvas) 
    { 
     if (points == null) 
     { 
      return; 
     } 
     canvas.drawLines(points, linePaint); 
     rect.set((int) (xIndex * xScale), 0, (int) (xIndex * xScale + 5), getHeight()); 
     canvas.drawRect(rect, backgroundPaint); 
    } 
... 
} 

您可以根據自己的需要輕鬆定位/調整您的矩形。我沒有寫xIndex和xScale的計算。點數組是您的值將被寫入的數組。

但是要小心,在android系列中用雙對繪製,沒有'點'結構,就我所知。

我的意思是[1,0.25mmol,2,0.45]繪製X1 = 1,Y 1 = 0.25和x 2 = 2,Y 2之間的線= 0.45

您也可以通過postInvalidate()觸發拉伸

postInvalidate() onDraw (Canvas canvas)

1

我建議你使用AChartEngine而不是畫在畫布上。 您可以下載庫,javadocs和演示應用程序here

在YouTube上有關於開始使用AChartEngine的教程。

您可以使用折線圖下面的區域填充顏色或未填充以複製您提供的第一個屏幕截圖中的功能。

相關問題