pit*_*nal 28 android achartengine
我的应用程序需要图库,我正在使用achartengine图库.我的应用程序要求图形仅占屏幕的50%,而其他部分则用于显示其他一些信息.
是否可以为achartengine的图形API提供xml资源文件以及如何操作?
我试图找到一个例子,但没有找到它.它是否受支持?
Dan*_* D. 45
这是AChartEngine的常见问题解答.AChartEngine演示应用程序可从此处下载:AChartEngine演示
在演示源代码中,您可以看到有关如何将图表嵌入现有视图的示例.
基本上,在活动描述符.xml文件中,我们将以下内容定义为图表的占位符.当然,其他用户界面组件与此布局一起使用:
第27行附近的ChartDemo/layout/xy_chart.xml
<LinearLayout
android:id="@+id/chart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal" />
Run Code Online (Sandbox Code Playgroud)
我们定义一个局部变量:
第68行附近的ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java
private GraphicalView mChartView;
Run Code Online (Sandbox Code Playgroud)
我们在活动的onResume()方法上实例化它:
第163行附近的ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java
protected void onResume() {
super.onResume();
if (mChartView == null) {
LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
mChartView = ChartFactory.getLineChartView(this, mDataset,
mRenderer);
layout.addView(mChartView, new LayoutParams
(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
...
} else {
mChartView.repaint();
}
}
Run Code Online (Sandbox Code Playgroud)
每当添加新数据时(当用户在我们的情况下按下"添加"按钮时,在当前系列中添加一个新点并且:
第147行附近的ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java
if (mChartView != null) {
mChartView.repaint();
}
Run Code Online (Sandbox Code Playgroud)
pit*_*nal 15
有两套API ChartFactory.例如.getLineChartView()和getLineChartIntent().因此,前者用于获取可以添加到自定义布局的图形视图,以后用于获取意图.在上面的示例中,Dan使用了getLineChartView()返回a的API GraphicalView.
你可以这样写你的xml ......
<LinearLayout
android:layout_below="@+id/btn"
android:id="@+id/chart" android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1">
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
和java代码片段是
protected void onResume() {
super.onResume();
if (mChartView == null) {
LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
mChartView = ChartFactory.getBarChartView(this,getBarDemoDataset(values),renderer,Type.DEFAULT);
layout.addView(mChartView);
} else {
mChartView.repaint();
}
}
Run Code Online (Sandbox Code Playgroud)