Aller au contenu

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

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...