我在我的项目中使用了AChartengine。我正在向用户显示包含数据库数据的图表。 我实际上使用的是AChartEngine的1.0.0版本。
我想将我的应用中的图表功能更改为线程。
一切正常但是......我遇到了问题。 runnable thread显示的图表没有缩放的可能性。
在处理程序上,我检查了GraphicalView是否已启用。它是。我尝试了很多选择。这是AChartEngine问题吗?
我正在使用此渲染器选项:
renderer.setXLabels(7);
renderer.setYLabels(10);
renderer.setLegendHeight(60);
renderer.setShowGrid(true);
renderer.setXLabelsAlign(Align.CENTER);
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setZoomButtonsVisible(false);
renderer.setZoomEnabled(true);
renderer.setExternalZoomEnabled(true);
renderer.setApplyBackgroundColor(true);
renderer.setBackgroundColor(Color.WHITE);
renderer.setLabelsColor(Color.BLACK);
renderer.setMarginsColor(Color.WHITE);
renderer.setChartTitle("");
renderer.setMargins(new int[] { 15, AChartMarginLeft, 20, 15 });
renderer.setPanLimits(new double[] { x.get(0)[0].getTime(),
x.get(0)[(ileC - 1)].getTime() + (1 * 24 * 60 * 60 * 1000),
minvalY, maxY });
renderer.setZoomLimits(new double[] { x.get(0)[0].getTime(),
x.get(0)[(ileC - 1)].getTime() + (1 * 24 * 60 * 60 * 1000),
minvalY, maxY });
renderer.setPointSize(4);
renderer.setShowAxes(false);
renderer.setAxisTitleTextSize(AChartAxisTitleTextSize);
renderer.setLabelsTextSize(AChartsetLabelsTextSize);
renderer.setLegendTextSize(AChartsetLegendTextSize);
因此启用了缩放功能。
处理程序中的mChartView显示mChartView已启用缩放。
private final Handler myHandler = new Handler();
final Runnable updateRunnable = new Runnable() {
public void run() {
Log.d("updateRunnable","RUNNABLE");
if (mRenderer.isZoomEnabled()) {
Log.d("ZOOM ENABLED","ENABLED");
} else {
Log.d("NO","NO ZOOMING");
}
}
};
解
编辑:
我找到了回答我的问题。我尝试了很多东西。它不是缩放/平移边距。 我将这部分从线程移动到处理程序,现在缩放工作。如果这个部分在线程中,那么图表就可以了,但就像我说缩放没有工作一样。
mChartView = ChartFactory.getBarChartView(getApplicationContext(),
ChartFunctions.buildBarDataset(titles, values),
renderer,type.DEFAULT);
答案 0 :(得分:0)
您正在设置一些似乎正好是图表值范围的缩放限制。这意味着您无法在该范围之外进行缩放。