2012-06-19 2 views
11

안녕하세요, 나는 필드 테스트 응용 프로그램을 개발하려고하는데 인접한 셀의 신호 강도와 같은 정보를 검색했습니다.Wifi Analyzer App과 같이 Android에서 그래프를 그리는 방법은 무엇입니까?

그래서 제 질문은 :

가 어떻게 X 축과 실시간으로 Y 축에 신호 강도에 다른 이웃 세포와 그래프를 표시 할 수 있습니다

? 예 : here.

나는 이미 5 개 또는 6 개의 이웃 셀을 가지고 있으며 각 셀에는 신호 강도가 있습니다.

+0

문제는 무엇입니까? 이웃 세포와 비교하여 힘을 얻었습니까? 아니면 문제를 표시하고 있습니까?이미 데이터가있는 경우 UA 코멘트를 위해 캔버스 – Guardanis

+0

에 그려 볼 수 있습니다. 이웃과의 강점을 얻고 싶습니다. 나는 이미 데이터를 가지고있어서 문제는 캔버스에 어떻게 그려 넣을 것인가? – 13KZ

+1

이전에 캔버스를 사용한 적이 없다면, 다음과 같이 시작하는 것이 좋습니다. http://www.tutorialforandroid.com/2009/06/drawing-with-canvas-in-android.html - 그리고 이미 데이터를 가져 와서 점을 반복하고 그리다 (원, 선 등) – Guardanis

답변

12

그래프를 수동으로 캔버스를 사용하여 드로잉 할 수 있습니다. 차트 엔진 라이브러리를 사용할 수 있으며 훨씬 쉽게 작업 할 수 있습니다. AchartEngine 추천

, ChartDroid, aFreeChart 차원 차트 MPAndroidChart

제가 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 × 2 = 2 (Y2) 사이의 라인 = 0.45 또한

는 postInvalidate()에 의해

을 그릴을 유발할 수 무

postInvalidate() onDraw (Canvas canvas)

1

은 당신이 아니라 캔버스에 그리기보다 AChartEngine을 사용하는 것이 좋습니다. 라이브러리, javadocs 및 데모 애플리케이션 here을 다운로드 할 수 있습니다.

AChartEngine을 시작하는 방법에 대한 자습서가 YouTube에 있습니다.

제공 한 첫 번째 스크린 샷의 기능을 복사하기 위해 아래 차트의 영역이 색으로 채워지거나 채워지지 않은 선형 차트를 사용할 수 있습니다.

관련 문제