Jump to content

Dessin d'un cercle derrière un graphe achartengine


Azuken

Recommended Posts

Salut,

J'aimerais pouvoir place un cercle dessiné derrière un graphique créé via la librairie achartengine, seulement le cercle s'affiche toujours par dessus...

J'ai créé une classe qui crée le cercle, et dans la méthode main je crée le graphique

Comment faire pour le passer derrière ?

package fr.test.appli_graphique;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.chart.TimeChart;
import org.achartengine.model.TimeSeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.widget.LinearLayout;
public class Main extends Activity {

private XYMultipleSeriesDataset mDataset;
private XYMultipleSeriesRenderer mRenderer;
List<double[]> values = new ArrayList<double[]>();
private GraphicalView mChartView;
private TimeSeries time_series;

private LinearLayout layout;

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 layout = (LinearLayout) findViewById(R.id.chart);

 mDataset = new XYMultipleSeriesDataset();
 mRenderer = new XYMultipleSeriesRenderer();
 mRenderer.setAxisTitleTextSize(16);
 mRenderer.setChartTitleTextSize(20);
 mRenderer.setLabelsTextSize(15);
 mRenderer.setLegendTextSize(15);
 mRenderer.setPointSize(3f);
 mRenderer.setGridColor(Color.RED);

 XYSeriesRenderer r = new XYSeriesRenderer();
 r.setColor(Color.LTGRAY);
 r.setPointStyle(PointStyle.X);
 r.setFillPoints(true);
 mRenderer.addSeriesRenderer(r);
 mRenderer.setClickEnabled(true);
 mRenderer.setSelectableBuffer(20);
 mRenderer.setPanEnabled(true);

 time_series = new TimeSeries("Test");

 mDataset.addSeries(time_series);

 fillData();

 mChartView = ChartFactory.getTimeChartView(this, mDataset, mRenderer, "H:mm:ss");
 layout.addView(mChartView);


}
private void fillData() {
long value = new Date().getTime() - 3 * TimeChart.DAY;
for (int i = 0; i < 100; i++) {
time_series.add(new Date(value + i * TimeChart.DAY / 4), i);
}

}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
 getMenuInflater().inflate(R.menu.activity_main, menu);
 return true;
}
}
package fr.test.appli_graphique;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
public class CircleView extends View {
public CircleView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public CircleView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public CircleView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@SuppressLint("DrawAllocation")
@Override
protected void onDraw(Canvas canvas) {
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.LTGRAY);
float cx = getMeasuredWidth() / 2;
float cy = getMeasuredHeight() / 2;
float radius = Math.min(cx, cy);
canvas.drawCircle(cx, cy, radius, paint);
super.onDraw(canvas);
}
}

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...