如何在android中为achartengine折线图设置背景图片?

问题描述:

我使用achartengine来显示我的应用程序中的折线图。我需要为图表添加bg图像,但是当我将bg图像设置为xml时,它不起作用。有没有人试过这个?提前致谢。如何在android中为achartengine折线图设置背景图片?

+0

你试过了什么?张贴一些源代码将有所帮助。 – 2012-01-05 06:57:38

+0

AFAIK它不支持背景图像,但你可以设置颜色[像这样](http://*.com/questions/7711586/android-how-to-change-the-background-color-of-the-graph -using-achartengine) – MKJParekh 2012-01-05 07:11:02

您是否设置了margincolor? 是否这样?

mRenderer.setApplyBackgroundColor(true); 
mRenderer.setBackgroundColor(Color.RED); 
mRenderer.setMarginsColor(Color.RED); 

这会给你的图形背景的整体视图,以红色

+0

这是票!谢谢:) setMarginsColor()错过了,而寻找它。 – jasonflaherty 2013-11-15 05:03:48

mRenderer.setBackgroundColor(Color.Transparent); 

且布局背景,其中显示在图表上设置背景图片。 完成。

这可以设置折线图的背景。这对我而言是一个窍门。

// 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(); 
} 

首先,您需要将图表添加到您的活动中,并将首选图像设置为活动布局中的背景。 (看看XYChartBuilder在AChartEngineneDemo来看看如何做到这一点)

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

mRenderer.setApplyBackgroundColor(true); 
mRenderer.setBackgroundColor(Color.TRANSPARENT); 
mRenderer.setMarginsColor(getResources().getColor(R.color.transparent_background)); 

最后,创建自己的透明背景,因为没有按Color.TRANSPARENT对于图表保证金“T工作:

<color name="transparent_background">#00FF0000</color> 

希望这有助于:)

+2

非常感谢好友...你是老板.. – Mahesh 2013-06-05 14:50:00

+0

如果我想添加图像作为背景,而不是颜色? – 2015-10-19 06:53:15

+0

您在活动布局中设置了背景图片,并为图表设置了透明颜色。只要按照我的指示。 – thanhbinh84 2015-10-22 04:10:52

,拆卸:

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

而且它会删除保证金:)其简单

为背景色:

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

您只需更换行的代码与此一:

mRenderer.setMarginsColor(Color.argb(0x00, 0x01, 0x01, 0x01)); 
+0

不明白为什么更好的Color.TRANSPARENT不适用于setMarginsColor,但是这样做......谢谢。 – hotzen 2014-09-21 21:27:29

如果你想设置透明背景颜色,你可以尝试:

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

它只是为我工作!