[英]android achartengine not zooming
我正在使用AChartEngine,但是由于某种原因,它不是按捏缩放,而是仅按按钮缩放,下面是代码:
private XYMultipleSeriesDataset mDataset;
private XYMultipleSeriesRenderer mRenderer;
private GraphicalView mChartView;
private TimeSeries time_series;
mDataset = new XYMultipleSeriesDataset();
mRenderer = new XYMultipleSeriesRenderer();
mRenderer.setAxisTitleTextSize(16);
mRenderer.setChartTitleTextSize(20);
mRenderer.setLabelsTextSize(15);
mRenderer.setLegendTextSize(15);
mRenderer.setPointSize(3f);
mRenderer.setZoomRate(0.5f);
mRenderer.setZoomButtonsVisible(true);
mRenderer.setClickEnabled(true);
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(Color.GREEN);
r.setPointStyle(PointStyle.CIRCLE);
r.setFillPoints(true);
mRenderer.addSeriesRenderer(r);
mRenderer.setClickEnabled(true);
mRenderer.setSelectableBuffer(20);
mRenderer.setPanEnabled(true);
mRenderer.setZoomEnabled(true);
time_series = new TimeSeries("test");
mDataset.addSeries(time_series);
fillData();
mChartView = ChartFactory.getTimeChartView(this, mDataset, mRenderer,
"yyyy-MM-dd");
((LinearLayout) findViewById(R.id.chart)).addView(mChartView);
private void fillData() {
long value = new Date().getTime() - 3 * TimeChart.DAY;
for (int i = 0; i < 100; i++) {
time_series.add(new Date(value + i * TimeChart.DAY / 4), i);
}
}
这是xml部分:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/chart"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</LinearLayout>
</LinearLayout>
编辑:而且它根本不动
对于我正在使用achartengine-1.1.0.jar
的库, achartengine-1.1.0.jar
可以看到我在做什么错吗?
谢谢
我想您现在可能已经找到答案了。 但是,这是遇到同样问题的人的解决方案。
将点击侦听器添加到您的GraphicalView
。 在这种情况下 -
mChartView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
});
这应该可以解决问题。
这是一个很好的技巧。 由于某种原因,即使没有任何代码,ClickListener也可以使平移和缩放正常工作。 没有它,图表是静态的。
这是代码...
@Override
protected void onResume() {
super.onResume();
if (mChartView == null) {
LinearLayout layout = (LinearLayout) findViewById(R.id.chart_container_layout);
mChartView = ChartFactory.getLineChartView(this, dataset, renderer);
mChartView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
});
layout.addView(mChartView);
} else {
mChartView.repaint();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.