如何在Android中为achartengine线性图设置背景图像?

7

我正在使用achartengine在我的应用程序中显示折线图。我需要为图表添加背景图片,但是当我在xml中设置背景图片时,它不起作用。有人尝试过这个吗?先感谢您。


你尝试了什么?发一些源代码会有帮助的。 - Sunil Kumar Sahoo
据我所知,它不支持背景图片,但您可以设置颜色像这样 - MKJParekh
7个回答

14

首先,您需要在活动中添加图表,并将首选图像设置为活动布局的背景。(查看AChartEngine演示中的XYChartBuilder以了解如何实现此操作)

其次,为图表和图表边距设置透明背景:

mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.TRANSPARENT);
mRenderer.setMarginsColor(getResources().getColor(R.color.transparent_background));
最后,创建自己的透明背景,因为对于图表边距,Color.TRANSPARENT 不起作用:
<color name="transparent_background">#00FF0000</color>

希望这可以帮到你 :)


你可以在你的活动布局中设置背景图片,并为你的图表设置透明颜色。只需按照我的指示操作即可。 - thanhbinh84

7
您只需将该行代码替换为以下内容:
mRenderer.setMarginsColor(Color.argb(0x00, 0x01, 0x01, 0x01));

不明白为什么更好的Color.TRANSPARENT在setMarginsColor中不起作用,但这个方法可以...谢谢。 - hotzen

4

可以设置折线图的背景。这是一个对我有效的技巧。

// RelativeLayout layout_ChartView = (RelativeLayout) findViewById(R.id.chart_View);  
private GraphicalView mChartView;  
if(mChartView==null){
mChartView.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg));
layout_ChartView.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT,300));  
mChartView = ChartFactory.getCubeLineChartView(this,mDataset,mRenderer, 0.2f);  
}
else{    
  mChartView.repaint();
}

3
你设置了margin的颜色吗?像这样吗?
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.RED);
mRenderer.setMarginsColor(Color.RED);

这将把你的图形背景全部变为红色


那就是它了!谢谢 :) 在查找时错过了setMarginsColor()。 - jasonflaherty

1
mRenderer.setBackgroundColor(Color.Transparent);

而 Layout 背景是显示图表的地方,设置您的背景图片。 完成。


1

如果您想设置透明背景颜色,可以尝试以下方法:

renderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00));

它对我来说只是工作!


1

用于移除:

mRenderer.setMargins(new int[]{0,0,0,0});

它将会移除边距 :) 这很简单

设置颜色:

mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.TRANSPARENT);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接