Java 堆叠条形图:更改整个条形图的外观?

Java 堆叠条形图:更改整个条形图的外观?,java,android,achartengine,Java,Android,Achartengine,我在Android应用程序中使用achartengine来显示堆叠条形图(类似于)。我使用ChartFactory.getBarChartView获取一个GraphicalView对象,然后将其放置在布局中 我的目标是在用户触摸其中一个堆叠条时向用户提供触摸反馈。我打算通过更改用户触摸的条的一些UI属性(可能是颜色)来实现这一点。但是,我希望将整个堆叠的条指定为已触摸。这与仅指定条的选定部分相反 以演示中的SalesStackedBarChart示例为例,我希望将整个条形图(例如,三月)指定为选

我在Android应用程序中使用achartengine来显示堆叠条形图(类似于)。我使用
ChartFactory.getBarChartView
获取一个
GraphicalView
对象,然后将其放置在布局中

我的目标是在用户触摸其中一个堆叠条时向用户提供触摸反馈。我打算通过更改用户触摸的条的一些UI属性(可能是颜色)来实现这一点。但是,我希望将整个堆叠的条指定为已触摸。这与仅指定条的选定部分相反

以演示中的SalesStackedBarChart示例为例,我希望将整个条形图(例如,三月)指定为选中的(而不仅仅是2008年3月的部分)

我已经知道如何在
GraphicalView
对象上设置
onClickListener
,以及如何使用
getCurrentSeriesAndPoint()
方法。然而,使用这种方法,我只能在所有选定的条上指定相同的部分。例如,所有12个栏上的2008部分都高亮显示

问题:

如何更改单个堆叠条中所有截面的外观

这是我的密码。它按设计工作(即,将所有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; 
                }
            }
        });

设置系列的颜色将更改该系列中所有条的颜色


一个可能的解决方案是创建一个额外的系列,其中只包含要高亮显示的选定条。相当棘手。

设置系列的颜色将更改该系列中所有条的颜色


一个可能的解决方案是创建一个额外的系列,其中只包含要高亮显示的选定条。相当棘手。

啊,我明白了。我希望能够操纵条形图本身(我想这可以归结为操纵
XYSeries
,而不是
渲染器
)。我想我必须想出其他的方法来给用户触摸反馈。啊,我明白了。我希望能够操纵条形图本身(我想这可以归结为操纵
XYSeries
,而不是
渲染器
)。我想我还得想其他方法给用户触觉反馈。