问题
I implemented the Line graph using the achartengine. But i want change the line graph background color. Somebody suggest that the following code for changing the background color.
mRenderer.setApplyBackgroundColor(true); mRenderer.setBackgroundColor(Color.RED);
But it will not change the entire background. I want to change the entire background is it possible? if yes, then how to do it please can anybody help me.The following image is the output of the previous code.I want to change the entire bgcolor(means remaining black color part to white also)
Alinegraph.java
public class ALinegraph extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
Button Linegraph = (Button) findViewById(R.id.Linegraph);
Linegraph.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Linegraphpage ACTC = new Linegraphpage();
Intent intent = ACTC.execute(ALinegraph.this);
startActivity(intent);
}});
}
}
Linegraphpage.java
public class Linegraphpage extends AbstractDemoChart
{
/**
* Returns the chart name.
*
* @return the chart name
*/
public String getName() {
return "Average temperature";
}
/**
* Returns the chart description.
*
* @return the chart description
*/
public String getDesc() {
return "The average temperature in 4 Greek islands (line chart)";
}
/**
* Executes the chart demo.
*
* @param context the context
* @return the built intent
*/
public Intent execute(Context context) {
String[] titles = new String[] { "Crete","Corfu"};
List<double[]> x = new ArrayList<double[]>();
for (int i = 0; i < titles.length; i++) {
x.add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
}
List<double[]> values = new ArrayList<double[]>();
values.add(new double[] { 12.3, 12.5, 13.8, 16.8, 20.4, 24.4, 26.4, 26.1, 23.6, 20.3 });
values.add(new double[] { 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 });
int[] colors = new int[] { Color.CYAN,Color.GREEN};
PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE,PointStyle.POINT};
XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles);
int length = renderer.getSeriesRendererCount();
for (int i = 0; i < length; i++) {
((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true);
}
setChartSettings(renderer, "", "", "price", 0, 12, 0, 190,
Color.GREEN, Color.GREEN);
renderer.setXLabels(10);
renderer.setYLabels(7);
renderer.setShowGrid(false);
renderer.setXLabelsAlign(Align.RIGHT);
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setApplyBackgroundColor(true);
renderer.setBackgroundColor(Color.WHITE);
renderer.setZoomButtonsVisible(true);
renderer.setPanLimits(new double[] { -10, 20, -10, 40 });
renderer.setZoomLimits(new double[] { -10, 20, -10, 40 });
Intent intent = ChartFactory.getLineChartIntent(context, buildDataset(titles, x, values),
renderer, "");
return intent;
}
}
Updated image
回答1:
you should also set your margincolor:
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.RED);
mRenderer.setMarginsColor(Color.RED);
This will give a whole view of your graph background to red color.
来源:https://stackoverflow.com/questions/7711586/android-how-to-change-the-background-color-of-the-graph-using-achartengine