/** * Creates a new graphical view. * * @param context the context * @param chart the chart to be drawn */ public GraphicalView(Context context, AbstractChart chart) { super(context); mContext = context; mChart = chart; mHandler = new Handler(); if (mChart instanceof XYChart) { mRenderer = ((XYChart) mChart).getRenderer(); } else { mRenderer = ((RoundChart) mChart).getRenderer(); } if (mRenderer.isZoomButtonsVisible()) { zoomInImage = AbFileUtil.getBitmapFromSrc("image/zoom_in.png"); zoomOutImage = AbFileUtil.getBitmapFromSrc("image/zoom_out.png"); fitZoomImage = AbFileUtil.getBitmapFromSrc("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); } mTouchHandler = new TouchHandler(this, mChart); if (mChart instanceof XYChart) { XYMultipleSeriesRenderer mXYMultipleSeriesRenderer = ((XYChart) mChart).getRenderer(); // 根据屏幕大小重置所有尺寸 int explainTextSize1 = mXYMultipleSeriesRenderer.getExplainTextSize1(); int explainTextSize2 = mXYMultipleSeriesRenderer.getExplainTextSize2(); int scaleCircleRadius = mXYMultipleSeriesRenderer.getScaleCircleRadius(); int scaleRectWidth = mXYMultipleSeriesRenderer.getScaleRectWidth(); int scaleRectHeight = mXYMultipleSeriesRenderer.getScaleRectHeight(); // 按分辨率转换 mXYMultipleSeriesRenderer.setExplainTextSize1(AbViewUtil.scale(mContext, explainTextSize1)); mXYMultipleSeriesRenderer.setExplainTextSize2(AbViewUtil.scale(mContext, explainTextSize2)); mXYMultipleSeriesRenderer.setScaleCircleRadius(AbViewUtil.scale(mContext, scaleCircleRadius)); mXYMultipleSeriesRenderer.setScaleRectWidth(AbViewUtil.scale(mContext, scaleRectWidth)); mXYMultipleSeriesRenderer.setScaleRectHeight(AbViewUtil.scale(mContext, scaleRectHeight)); SimpleSeriesRenderer[] mSimpleSeriesRenderers = mRenderer.getSeriesRenderers(); if (mSimpleSeriesRenderers != null && mSimpleSeriesRenderers.length > 0) { for (int i = 0; i < mSimpleSeriesRenderers.length; i++) { SimpleSeriesRenderer mSimpleSeriesRenderer = mSimpleSeriesRenderers[i]; int mChartValuesTextSize = (int) mSimpleSeriesRenderer.getChartValuesTextSize(); mSimpleSeriesRenderer.setChartValuesTextSize( AbViewUtil.scale(mContext, mChartValuesTextSize)); } } } int chartTitleTextSize = (int) mRenderer.getChartTitleTextSize(); mRenderer.setChartTitleTextSize(AbViewUtil.scale(mContext, chartTitleTextSize)); // 轴线上标签文字大小 int mLabelsTextSize = (int) mRenderer.getLabelsTextSize(); mRenderer.setLabelsTextSize(AbViewUtil.scale(mContext, mLabelsTextSize)); // 说明文字大小 int mLegendTextSize = (int) mRenderer.getLegendTextSize(); mRenderer.setLegendTextSize(AbViewUtil.scale(mContext, mLegendTextSize)); }