TimeChart があり、ズーム率が変更されるたびに保存しようとしています。したがって、ZoomListener をチャートに追加します。
public void showChart()
{
mChartView = ChartFactory.getTimeChartView(this.context, this.mDataset,
this.mRenderer, TrackedValue.DATE_FORMAT_USER);
this.layout.addView(mChartView);
mChartView.setZoomRate(prefs.getChartZoomRate());
Log.d("showChart", "Set: "+prefs.getChartZoomRate());
mChartView.addZoomListener(new ZoomListener() {
@Override
public void zoomReset() {
// TODO Auto-generated method stub
}
@Override
public void zoomApplied(ZoomEvent e) {
prefs.setChartZoomRate(e.getZoomRate());
Log.d("zoomApplied", "Save: "+String.valueOf(e.getZoomRate()+", isZoomIn: "+e.isZoomIn()));
}
}, true, true);
}
グラフを表示して [ズームイン] ボタンを押すと、ログの出力は次のようになります。
zoomApplied Save: 1.5, isZoomIn: true
(ズームボタンを使用して)ズームアウトすると、ログ出力は次のようになります。
zoomApplied Save 1.5, isZoomIn: false
ズームインまたはズームアウトの頻度に関係なく、実際のズーム率に関係なく、e.getZoomRate() が常に 1.5 を返す理由がわかりません... e.isZoomIn() は正常に動作しています。
何か案は?