2012-06-19 3 views
11

Привет, Я пытаюсь разработать приложение для тестирования полей, и я должен получить информацию, такую ​​как уровень сигнала соседних ячеек.Как нарисовать график в андроиде, как приложение Wifi Analyzer?

Так что мой вопрос:

Как я могу отобразить график с различными соседними клетками на оси Х и силу сигнала на Y-оси в режиме реального времени? Пример here.

У меня уже есть 5 или 6 соседних ячеек и для каждого из них его сила сигнала.

+0

В чем именно проблема? Получается ли это сила против соседних ячеек или ваша проблема отображается?Если у вас уже есть данные, вы, вероятно, можете просто запечатлеть их на холсте – Guardanis

+0

thks для комментариев ура. Я хочу получить силу против соседней и, конечно, отобразить ее после. У меня уже есть данные, поэтому проблема заключается в том, как запечатлеть это на холсте, как сказал! – 13KZ

+1

Если вы никогда раньше не использовали холст, это хорошее место для начала: http://www.tutorialforandroid.com/2009/06/drawing-with-canvas-in-android.html - И если вы уже иметь данные, просто прокручивать точки и рисовать их (круги, линии через них и т. д.) – Guardanis

ответ

12

Скорее вычеркните диаграмму самостоятельно с помощью Canvas, вы можете использовать доступные библиотеки диаграммных движков, и это будет намного проще сделать.

Как AchartEngine, ChartDroid, aFreeChart, MPAndroidChart

Для 3D Chart Charts4J

Как можно отобразить график с различными соседними клетками на оси Х и силы сигнала на Y-оси в настоящее время?

Я использовал aChart Engine для того же самого в одном из моих приложений. В библиотеке есть полная демо-версия API, поэтому было бы легко понять, как ее использовать.

+2

Я хотел бы добавить [aFreeChart] (https://code.google.com/p/afreechart/), который это порт jFreeChart, в список. – Ivin

+0

Вы, Wel-Come, спасибо @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. Массив точек - это тот, который будут записываться вашими значениями.

Но будьте осторожны, в линиях андроидов нарисованы пары, не существует «точечной» структуры, как я знаю.

Я имею в виду [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.

Вы можете использовать линейные диаграммы с областью под диаграммой, заполненной цветом или не заполненной для копирования функциональности на первых снимках экрана, которые вы предоставили.

Смежные вопросы