blob: 6f44acb617f9cac7a6aed7cf03045eb9c0cc1372 [file] [log] [blame]
package com.github.mikephil.charting.renderer;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.Paint.Style;
import com.github.mikephil.charting.animation.ChartAnimator;
import com.github.mikephil.charting.data.DataSet;
import com.github.mikephil.charting.utils.Highlight;
import com.github.mikephil.charting.utils.Utils;
import com.github.mikephil.charting.utils.ViewPortHandler;
public abstract class DataRenderer extends Renderer {
protected ChartAnimator mAnimator;
/** main paint object used for rendering */
protected Paint mRenderPaint;
/** paint used for highlighting values */
protected Paint mHighlightPaint;
protected Paint mDrawPaint;
/**
* paint object for drawing values (text representing values of chart
* entries)
*/
protected Paint mValuePaint;
public DataRenderer(ChartAnimator animator, ViewPortHandler viewPortHandler) {
super(viewPortHandler);
this.mAnimator = animator;
mRenderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mRenderPaint.setStyle(Style.FILL);
mDrawPaint = new Paint(Paint.DITHER_FLAG);
mValuePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mValuePaint.setColor(Color.rgb(63, 63, 63));
mValuePaint.setTextAlign(Align.CENTER);
mValuePaint.setTextSize(Utils.convertDpToPixel(9f));
mHighlightPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mHighlightPaint.setStyle(Paint.Style.STROKE);
mHighlightPaint.setStrokeWidth(2f);
mHighlightPaint.setColor(Color.rgb(255, 187, 115));
}
/**
* Returns the Paint object this renderer uses for drawing the values
* (value-text).
*
* @return
*/
public Paint getPaintValues() {
return mValuePaint;
}
/**
* Returns the Paint object this renderer uses for drawing highlight
* indicators.
*
* @return
*/
public Paint getPaintHighlight() {
return mHighlightPaint;
}
/**
* Returns the Paint object used for rendering.
*
* @return
*/
public Paint getPaintRender() {
return mRenderPaint;
}
/**
* Applies the required styling (provided by the DataSet) to the value-paint
* object.
*
* @param set
*/
protected void applyValueTextStyle(DataSet<?> set) {
mValuePaint.setColor(set.getValueTextColor());
mValuePaint.setTypeface(set.getValueTypeface());
mValuePaint.setTextSize(set.getValueTextSize());
}
public abstract void initBuffers();
public abstract void drawData(Canvas c);
public abstract void drawValues(Canvas c);
public abstract void drawExtras(Canvas c);
public abstract void drawHighlighted(Canvas c, Highlight[] indices);
}