2012-09-22 74 views

回答

9

您可以创建SurfaceView,您可以在onDraw()方法中使用。要绘制图形,可以使用Path类,它的方法为moveTo()lineTo()。要更改线条的外观,请使用Paint类。然后使用Canvases drawPath()方法,该方法使用PathPaint对象。我认为比OpenGl更容易开始。

Some tutorial

更新: 我已经找到了预tty好看的库,它看起来很容易使用:MPAndroidChart

+0

我们可以使用MPAndroidChat来绘制Circle等数学关系吗?我问这是因为AChartEngine不支持这个 –

+0

我没有使用MPAndroidChart,我只在github上看过它,从漂亮的演示文档和文档看来,它似乎是一个很好的图形选择。你最好从开发者那里问问,他/她可能会帮助你。 –

+0

@ bali182 ...谢谢 –

1

如何想的OpenGL ES?

您可以创建一个扩展GLSurfaceView

例如GraphView代码 -

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; 
} 

}

你可以试试这个方法。

+1

是的,但我怎么样可以将时间设置在0.15分钟的y轴上? –