2012-09-22 11 views
11

मैं संलग्न छवि में दिखाए गए ग्राफ को आकर्षित करना चाहता हूं।एंड्रॉइड में ग्राफ कैसे आकर्षित करें?

मैंने पहले से ही चाचाइंजिन द्वारा कोशिश की लेकिन यह सफलतापूर्वक काम नहीं कर रहा है।

enter image description here

+0

http://stackoverflow.com/questions/424752/any-good-graphing-packages-for-android आपको मदद कर सकता है ... – nKandel

उत्तर

9

आप SurfaceView बना सकते हैं, जिसमें आप विधि में Canvas पर जा सकते हैं। अपने ग्राफ को आकर्षित करने के लिए, आप Path कक्षा का उपयोग कर सकते हैं, और यह moveTo() और lineTo() विधियों का उपयोग कर सकता है। लाइनों की उपस्थिति को बदलने के लिए, Paint कक्षा का उपयोग करें। फिर कैनवास drawPath() विधि का उपयोग करें, जो Path और Paint ऑब्जेक्ट लेता है। मुझे लगता है कि ओपनजीएल की तुलना में शुरू करना थोड़ा आसान है।

Some tutorial

अद्यतन: मैं एक पूर्व पाया है टीटीई अच्छी लग रही लाइब्रेरी, जो उपयोग में आसान लगती है: MPAndroidChart

+0

क्या हम सर्किल जैसे गणितीय संबंधों को साजिश करने के लिए एमपी एंड्रॉइडकैट का उपयोग कर सकते हैं? मैं यह पूछ रहा हूं क्योंकि AChartEngine उस –

+0

का समर्थन नहीं करता है, मैंने MPAndroidChart का उपयोग नहीं किया है, मैंने इसे केवल गिटूब पर देखा है, और अच्छी प्रस्तुति से, और प्रलेखन से, यह ग्राफ के लिए बहुत अच्छी पसंद की तरह लग रहा था। आप डेवलपर से बेहतर पूछते हैं, वह आपकी मदद करने में सक्षम हो सकता है। –

+0

@ बाली 182..धन्यवाद –

1

कैसे 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; 
} 

}

आप इस तरह से कोशिश कर सकते हैं code-।

+1

हाँ, लेकिन मैं कैसे 0.15 मिनट के वाई धुरी पर समय निर्धारित कर सकते हैं? –

संबंधित मुद्दे