Intereting Posts
Содержимое фрагмента накладывается панель инструментов Файл плейса Android parse Как получить даты из базы данных и проверить, перекрываются ли они? Невозможно скомпилировать, Невозможно выполнить dex, не может объединиться, не-jumbo инструкция Как я могу отключить альфа-значение пульсации Lollipop для Android? Как включить трассировку adb Как показать персонажи Emoji стиля iOS в EditText Android? Создайте слой тепловой карты, используя карту google api v2 для Android. Android google maps Polygon добавить круглое отверстие В библиотеке Android AAR я могу открыть открытый API и скрыть реализацию? Почему в пользовательской учетной записи Android не отображается «Учетные записи и настройки»? Android studio ctrl + space открывает окно документации Черное пространство под заголовком при использовании пользовательского фона для просмотра списка Ошибка камеры при блокировке / разблокировке устройства Цвет выбранной вкладки в виде нижней навигации

Как рисовать график в Android?

Я хочу нарисовать график, как показано на прилагаемом изображении.

Я уже пробовал aChartEngine, но он не работает успешно.

Введите описание изображения здесь

Вы можете создать SurfaceView , в котором вы можете рисовать Canvas в onDraw() . Чтобы нарисовать график, вы можете использовать класс Path , а также методы moveTo() и lineTo() . Чтобы изменить внешний вид линий, используйте класс Paint . Затем используйте метод drawPath() , который принимает объект Path и Paint . Я думаю, с этого немного легче начать, чем OpenGl.

  • SurfaceView
  • холст
  • Дорожка
  • Покрасить

Некоторые учебники

Обновление: я нашел довольно красивую библиотеку, которая выглядит просто: MPAndroidChart

Как насчет того, чтобы попробовать OpenGL ES?

Вы можете создать GraphView, который расширяет GLSurfaceView

Пример кода-

 public class GraphView extends GLSurfaceView { private Renderer renderer; public GraphView(Context context) { super(context); renderer = new GraphRenderer(); setRenderer(renderer); } } 

И ваш GraphRender

 ublic class GraphRenderer implements Renderer { public void onDrawFrame(GL10 gl) { gl.glMatrixMode(GL10.GL_MODELVIEW); gl.glLoadIdentity(); GLU.gluLookAt(gl, 0, 0, -5, 0f, 0f, 0f, 0f, 1.0f, 1.0f); gl.glColor4f(1, 0, 0, .5f); } public void onSurfaceChanged(GL10 gl, int width, int height) { gl.glViewport(0, 0, width, height); float ratio = (float) width / height; gl.glMatrixMode(GL10.GL_PROJECTION); gl.glLoadIdentity(); gl.glFrustumf(-ratio, ratio, -1, 1, 3, 7); } public void onSurfaceCreated(GL10 gl, EGLConfig config) { } private void drawGraph(GL10 gl) { gl.glLineWidth(1.0f); // put your code here .. } public static int loadShader(int type, String shaderCode) { int shader = GLES20.glCreateShader(type); GLES20.glShaderSource(shader, shaderCode); GLES20.glCompileShader(shader); return shader; } 

}

Вы можете попробовать это.