OK, so. In my case, CustomGraphicalView extends org.achartengine.GraphicalView, but you can extend any class you need.
private CustomGraphicalView mGraphicalView = new BudgetPieChart().createView(this);
public CustomGraphicalView createView(Context context) { double[] values = new double[] { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }; //your desired values int[] colors = new int[] { // Color.BLUE, Color.GREEN, Color.MAGENTA, Color.YELLOW, Color.CYAN (your desired colors) Color.parseColor("#ff3399ff"), Color.parseColor("#ff0066cc"), Color.parseColor("#ff613592"), Color.parseColor("#ff7d3493"), Color.parseColor("#ffe81f53"), Color.parseColor("#ffeb5531"), Color.parseColor("#fff6bb2d"), Color.parseColor("#fff39f2f"), Color.parseColor("#ffe0d347"), Color.parseColor("#ff78c200") }; // remember to have enough colors to match the number of elements from the data array for each pie slice DefaultRenderer renderer = buildCategoryRenderer(colors); renderer.setZoomButtonsVisible(false); renderer.setZoomEnabled(false); renderer.setChartTitleTextSize(20); renderer.setAntialiasing(true); renderer.setApplyBackgroundColor(false); renderer.setBackgroundColor(Color.TRANSPARENT); renderer.setPanEnabled(false); renderer.setShowLabels(false); renderer.setShowLegend(false); return CustomChartFactory.getPieChartView(context, buildCategoryDataset("Project budget", values), renderer); } @Override public Intent execute(Context arg0) { // NOT USED return null; }
public class CustomChartFactory { public static final String CHART = "chart"; public static final String TITLE = "title"; private CustomChartFactory() {
This should make you move on with your project :) Good luck!
public class CustomGraphicalView extends org.achartengine.GraphicalView { private final AbstractChart mChart; private DefaultRenderer mRenderer; private final Rect mRect = new Rect(); private final Handler mHandler; private final RectF mZoomR = new RectF(); private Bitmap zoomInImage; private Bitmap zoomOutImage; private Bitmap fitZoomImage; private final int zoomSize = 50; private static final int ZOOM_BUTTONS_COLOR = Color.argb(175, 150, 150, 150); private Zoom mZoomIn; private Zoom mZoomOut; private FitZoom mFitZoom; private final Paint mPaint = new Paint(); private ITouchHandler mTouchHandler; private float oldX; private float oldY; public boolean isRotating; private float mX1, mY1, pY1, pX1, mX2, mY2, py, px, lastAngle, angle_rotation, rotation; public CustomGraphicalView(Context context, AbstractChart chart) { super(context, chart); setOnTouchListener(this); mChart = chart; mHandler = new Handler(); if (mChart instanceof XYChart) { mRenderer = ((XYChart) mChart).getRenderer(); } else { mRenderer = ((RoundChart) mChart).getRenderer(); } if (mRenderer.isZoomButtonsVisible()) { zoomInImage = BitmapFactory.decodeStream(CustomGraphicalView.class.getResourceAsStream("image/zoom_in.png")); zoomOutImage = BitmapFactory.decodeStream(CustomGraphicalView.class.getResourceAsStream("image/zoom_out.png")); fitZoomImage = BitmapFactory.decodeStream(CustomGraphicalView.class.getResourceAsStream("image/zoom-1.png")); } if ((mRenderer instanceof XYMultipleSeriesRenderer) && (((XYMultipleSeriesRenderer) mRenderer).getMarginsColor() == XYMultipleSeriesRenderer.NO_COLOR)) { ((XYMultipleSeriesRenderer) mRenderer).setMarginsColor(mPaint.getColor()); } if ((mRenderer.isZoomEnabled() && mRenderer.isZoomButtonsVisible()) || mRenderer.isExternalZoomEnabled()) { mZoomIn = new Zoom(mChart, true, mRenderer.getZoomRate()); mZoomOut = new Zoom(mChart, false, mRenderer.getZoomRate()); mFitZoom = new FitZoom(mChart); } int version = 7; try { version = Integer.valueOf(Build.VERSION.SDK); } catch (Exception e) {
public class CustomPieChart extends RoundChart { public static int radius = 115; float currentAngle; private final PieMapper mPieMapper; public CustomPieChart(CategorySeries dataset, DefaultRenderer renderer) { super(dataset, renderer); mPieMapper = new PieMapper(); } @Override public void draw(Canvas canvas, int x, int y, int width, int height, Paint paint) {