Azuken Posté(e) 22 octobre 2012 Share Posté(e) 22 octobre 2012 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 More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.