2012-06-19 4 views
11

こんにちは私はフィールドテストアプリケーションを開発しようとしており、私は隣接するセルの信号強度のような情報を取得しました。Wifi Analyzer Appのようにアンドロイドでグラフを描くには?

だから私の質問は:私はリアルタイムでY軸上 X軸および信号強度の異なる隣接セルとグラフを表示するにはどうすればよい

?例は hereです。

私はすでに5つまたは6つの隣接セルを持っており、それぞれに信号強度があります。

+0

問題は何ですか?近隣の細胞と比較して強度を得ているのか、それともあなたの問題であるのでしょうか?既にデータがある場合は、URコメントのためにCanvas – Guardanis

+0

thksにプロットしてください。私は近隣との強さを得て、もちろんそれを表示したい。私はすでにデータを持っているので、問題はキャンバスにそれをプロットする方法です。 – 13KZ

+1

これまでにCanvasを使ったことがない人は、これを開始するのに適しています。http://www.tutorialforandroid.com/2009/06/drawing-with-canvas-in-android.htmlデータを持って、ポイントをループして描画します(円、線など) – Guardanis

答えて

12

グラフをキャンバスで手動で描くのではなく、チャートエンジンライブラリを使用することができます。 AchartEngine同様

ChartDroidaFreeChart、3次元グラフのMPAndroidChart

Iは X軸およびY軸上の信号強度に異なる隣接セルとのグラフを表示する方法Charts4J

リアルタイムで?

私は自分のアプリケーションの中で同じもののためにチャーターエンジンを使用しています。ライブラリには完全なAPIデモが用意されていますので、その使い方を理解するのはかなり簡単です。

+2

[aFreeChart](https://code.google.com/p/afreechart/)を追加したいと思います。 jFreeChartのポートです。 – Ivin

+0

あなたはウェルカムです、ありがとう@Ivin – MKJParekh

+0

ありがとう@Ivin – 13KZ

1

リンクにはさまざまな種類があるため、どのタイプのグラフを作成したいのか分かりません。しかし、私はアンドロイドでリアルタイムの折れ線グラフを作成しました。私は線を描くためにキャンバスを使用しています。

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の計算を書いていませんでした。 points配列は、値が書き込まれる配列です。

しかし、アンドロイドの線はペアで描かれていますが、わかっているように 'ポイント'構造はありません。

私は[1、0.25、2、0.45]は、X1 = 1、Y1 = 0.25とx2 = 2、Y2 = 0.45

また、あなたがpostInvalidate(でドローを引き起こすことができるの間に線を引く意味)

postInvalidate() onDraw (Canvas canvas)

1

キャンバスに描画するのではなく、AChartEngineを使用することをお勧めします。 ライブラリ、javadocs、デモアプリケーションhereをダウンロードできます。

YouTubeには、AChartEngineを使い始める際のチュートリアルがあります。

提供した最初のスクリーンショットの機能をコピーするために、チャートの下の領域が色で塗りつぶされているか、塗りつぶされていない折れ線グラフを使用できます。

関連する問題