以编程方式翻译 MPAndroidChart 中的图表

Programmatically translate chart in MPAndroidChart

我正在尝试为 MPAndroidChart 中的 CombinedChart 实现自定义手势逻辑。实际上,我想要完成的是长按 'enable' 突出显示值,但短按和滑动仅控制平移/平移图表(缩放时)。这将允许您在缩放视口中突出显示值而无需平移图表(通过在滚动前长按),但如果您愿意,也可以通过在长按注册之前滚动视图来平移图表。 我已经想出如何进行我想要的所有手势交互,但是我不知道如何翻译图表

我真正想要的是一个 API,它允许我以像素为单位将图表视口转换为 (dX, dY),但我似乎找不到任何东西。我能找到的最接近的是 CombinedChart.centerViewTo(...) 但这希望您以 数据点 值为中心,如果在翻译时使用这些值会产生一些交错的翻译(如您不能以两个数据点之间的值为中心。

如果需要,我可以包含代码,但我认为代码对于简单的 API 查询来说可能过于冗长。

所以,如果出现更好的答案,我会删除它,但我找到了适合我需要的方法(但可能不是 'idiomatic')。我所做的是:

(给定 (dX, dY) 的像素偏移量和名为 mChart 的 CombinedChart...)

ViewPortHandler vph = mChart.getViewPortHandler();
Matrix transformation = vph.getMatrixTouch();
transformation.postTranslate(-dX, -dY); // unset the negs to make x / y inverted
vph.refresh(transformation, mChart, true);