如何在Android中绘制graphics?

我想绘制如附图所示的graphics

我已经尝试了一个graphics引擎,但它不能成功。

在这里输入图像说明

Solutions Collecting From Web of "如何在Android中绘制graphics?"

你可以创build一个SurfaceView ,在其中你可以在onDraw()方法中绘制一个Canvas 。 要绘制graphics,可以使用Path类,它是moveTo()lineTo()方法。 要更改线条的外观,请使用Paint类。 然后使用Canvases drawPath()方法,该方法需要一个Path和一个Paint对象。 我认为比OpenGl更容易开始。

  • SurfaceView
  • 帆布
  • path
  • 涂料

一些教程

更新:我发现了一个相当不错的库,看起来很容易使用: MPAndroidChart

如何尝试OpenGL ES?

你可以创build一个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; } 

}

你可以试试这个方法