Как нарисовать график в Android, например, приложение Wifi Analyzer?

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

Поэтому мой вопрос:

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

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

Solutions Collecting From Web of "Как нарисовать график в Android, например, приложение Wifi Analyzer?"

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

Как и AchartEngine , ChartDroid , aFreeChart , MPAndroidChart

Для 3D-диаграмм Charts4J

Как я могу отображать график с разными соседними ячейками по оси X и силой сигнала на оси Y в реальном времени?

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

Я не знаю, какой тип графика вы хотите развить, потому что в вашей ссылке есть разные типы. Но я разработал график реального времени в андроиде. Я использую холст для рисования линий.

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 и x2 = 2, y2 = 0,45

Также вы можете активировать draw by postInvalidate ()

PostInvalidate () onDraw (холст холста)

Я предлагаю вам использовать AChartEngine, а не рисовать на холсте. Вы можете скачать библиотеку, javadocs и демо-приложение здесь .

На сайте youtube есть учебники по началу работы с AChartEngine.

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