Skip to content

Instantly share code, notes, and snippets.

@Phlip
Created December 28, 2023 16:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Phlip/f79b3b5bd44663b3bd72e173fc5dce13 to your computer and use it in GitHub Desktop.
Save Phlip/f79b3b5bd44663b3bd72e173fc5dce13 to your computer and use it in GitHub Desktop.
AchartEngine bug in addFillOutsideLine()
package com.example.achartengineexample;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.LinearLayout;
import androidx.appcompat.app.AppCompatActivity;
import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
public class MainActivity extends AppCompatActivity {
private GraphicalView mChart;
private XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset();
private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
private XYSeries mCurrentSeries;
private XYSeries mHorizon;
private XYSeriesRenderer mCurrentRenderer;
private XYSeriesRenderer mHorizonRenderer;
private void initChart() {
mCurrentSeries = new XYSeries("Sample Data");
mHorizon = new XYSeries("Horizon");
mDataset.addSeries(mCurrentSeries);
mDataset.addSeries(mHorizon);
mCurrentRenderer = new XYSeriesRenderer();
mCurrentRenderer.setPointStyle(PointStyle.CIRCLE);
mCurrentRenderer.setFillPoints(true);
mRenderer.addSeriesRenderer(mCurrentRenderer);
mHorizonRenderer = new XYSeriesRenderer();
mHorizonRenderer.setColor(Color.GRAY);
mRenderer.addSeriesRenderer(mHorizonRenderer);
XYSeriesRenderer.FillOutsideLine fill = new XYSeriesRenderer.FillOutsideLine(XYSeriesRenderer.FillOutsideLine.Type.BOUNDS_BELOW);
int transparentRed = Color.argb(0.10F, 1.0F, 0.0F, 0.0F);
fill.setColor(transparentRed);
mCurrentRenderer.addFillOutsideLine(fill);
}
private void addSampleData() {
mHorizon.add(1, 0);
mHorizon.add(7, 0);
mCurrentSeries.add(1, 2);
mCurrentSeries.add(2, 3);
mCurrentSeries.add(3, 2);
mCurrentSeries.add(4, -5);
mCurrentSeries.add(5, 4);
mCurrentSeries.add(6, -3);
mCurrentSeries.add(7, 5);
}
LinearLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
layout = new LinearLayout(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(900, 600);
layout.setLayoutParams(layoutParams);
setContentView(layout);
}
protected void onResume() {
super.onResume();
if (mChart == null) {
initChart();
addSampleData();
mChart = ChartFactory.getCubeLineChartView(this, mDataset, mRenderer, 0.3f);
layout.addView(mChart);
} else {
mChart.repaint();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment