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