GraphView library for Android has a GraphView class, which is a View for creating graphs. This abstract class extends LinearLayout, so you can include a graph in layout by nesting LinearLayouts, like this:
xml layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/mainLayout">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World!" />
<LinearLayout
android:id="@+id/subLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
MainActivity.java:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GraphViewData[] data = new GraphViewData[num];
double v = 0;
for (int i = 0; i < 10; i++) {
v += 0.1;
data[i] = new GraphViewData(i, Math.sin(v));
}
GraphViewSeries seriesSin = new GraphViewSeries("Sinus", null, data);
GraphView graphView = new LineGraphView(this, "DemoGraphView");
graphView.addSeries(seriesSin);
graphView.setViewPort(2, 10);
LinearLayout layout = (LinearLayout) findViewById(R.id.subLayout);
layout.addView(graphView);
}
}
I nest LinearLayouts now but maybe there is a better way to include a graph in the layout file, eg. just like you place TextView or Button views?
I think you could remove your subLayout and add the GraphView directly to the mainLayout. So you would save one layout.