我在我的 Android 应用程序中使用 achartengine 来显示堆叠条形图(类似于此)。我使用ChartFactory.getBarChartView
来获取一个GraphicalView
对象,然后将其放置在我的布局中。
我的目标是在用户触摸其中一个堆叠条时向用户提供触摸反馈。我打算通过更改用户触摸的栏的一些 UI 属性(可能是颜色)来做到这一点。但是,我想将整个堆叠条指定为已触摸。这与仅指定栏的选定部分相反。
以演示中的 SalesStackedBarChart 示例为例,我想将整个条形图指定为选定的 3 月(不仅仅是 2008 年 3 月的部分)。
我已经知道如何设置对象并使用该onClickListener
方法。但是,使用这种方法,我只能将所有条上的相同部分指定为选定的部分。例如,突出显示所有 12 个条形上的 2008 年部分。GraphicalView
getCurrentSeriesAndPoint()
问题:
如何更改单个堆叠条中所有部分的外观?
这是我的代码。它按设计工作(即,将所有 12 个条上的选定部分设置为灰色),但这不是我想要的。
mGraph.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
SeriesSelection seriesSelection = mGraph.getCurrentSeriesAndPoint();
if (seriesSelection == null) {
Toast.makeText(mContext, "No chart element was long pressed",
Toast.LENGTH_SHORT).show();
return false; // no chart element was long pressed, so let
// something
// else handle the event
} else {
SimpleSeriesRenderer renderer = mMultiRenderer.getSeriesRendererAt(seriesSelection.getSeriesIndex());
Toast.makeText(mContext, "Chart element in series index "
+ seriesSelection.getSeriesIndex() + " data point index "
+ seriesSelection.getPointIndex() + " was long pressed",
Toast.LENGTH_SHORT).show();
renderer.setColor(Color.LTGRAY);
return true;
}
}
});