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