Android Open Source - Android-Charts Abstract Base Chart






From Project

Back to project page Android-Charts.

License

The source code is released under:

Apache License??Version 2.0, January 2004??http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and condi...

If you think the Android project Android-Charts listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * AbstractBaseChart.java//from   w w w . j  a v a 2 s  .c o  m
 * Android-Charts
 *
 * Created by limc on 2013.
 *
 * Copyright 2011 limc.cn All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package cn.limc.androidcharts.view;

import cn.limc.androidcharts.common.IChart;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.view.View;

/**
 * <p>
 * Base view of all charts
 * </p>
 * <p>
 * ????????????????????
 * </p>
 * <p>
 * ?????????
 * </p>
 * 
 * @author limc
 * @version v1.0 2011/05/29 15:17:50
 * 
 */
public abstract class AbstractBaseChart extends View implements IChart {

  public static final String LOG_TAG = "AbstractBaseChart";
  
  /**
   * <p>
   * default background color
   * </p>
   * <p>
   * ???????????????
   * </p>
   * <p>
   * ?????
   * </p>
   */
  public static final int DEFAULT_BACKGROUND_COLOR = Color.BLACK;
  
  /**
   * <p>
   * Should display the border?
   * </p>
   * <p>
   * ????????????
   * </p>
   * <p>
   * ????????????
   * </p>
   */
  public static final boolean DEFAULT_DISPLAY_BORDER = Boolean.TRUE;

  /**
   * <p>
   * default color of text for the longitude?degrees display
   * </p>
   * <p>
   * ??????????????????????
   * </p>
   * <p>
   * ???????????
   * </p>
   */
  public static final int DEFAULT_BORDER_COLOR = Color.RED;

  public static final float DEFAULT_BORDER_WIDTH = 1f;
  
  /**
   * <p>
   * Should display the border?
   * </p>
   * <p>
   * ????????????
   * </p>
   * <p>
   * ??????????
   * </p>
   */
  protected boolean displayBorder = DEFAULT_DISPLAY_BORDER;

  /**
   * <p>
   * Color of grids border line
   * </p>
   * <p>
   * ??????
   * </p>
   * <p>
   * ??????
   * </p>
   */
  protected int borderColor = DEFAULT_BORDER_COLOR;

  protected float borderWidth = DEFAULT_BORDER_WIDTH;

  /*
   * (non-Javadoc)
   * 
   * @param context
   * 
   * @see android.view.View#BaseChart(Context)
   */
  public AbstractBaseChart(Context context) {
    super(context);
  }

  /*
   * (non-Javadoc)
   * 
   * @param context
   * 
   * @param attrs
   * 
   * @see android.view.View#BaseChart(Context, AttributeSet)
   */
  public AbstractBaseChart(Context context, AttributeSet attrs) {
    super(context, attrs);
  }

  /*
   * (non-Javadoc)
   * 
   * @param context
   * 
   * @param attrs
   * 
   * @param defStyle
   * 
   * @see android.view.View#BaseChart(Context, AttributeSet, int)
   */
  public AbstractBaseChart(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
  }
  
  @Override
  protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    if (this.displayBorder) {
      drawBorder(canvas);
    }
  }
  
  /**
   * <p>
   * draw border
   * </p>
   * <p>
   * ???????????????
   * </p>
   * <p>
   * ????
   * </p>
   * 
   * @param canvas
   */
  protected void drawBorder(Canvas canvas) {
    Paint mPaint = new Paint();
    mPaint.setColor(borderColor);
    mPaint.setStrokeWidth(borderWidth);
    mPaint.setStyle(Style.STROKE);
    // draw a rectangle
    canvas.drawRect(borderWidth / 2, borderWidth / 2, super.getWidth()
        - borderWidth / 2, super.getHeight() - borderWidth / 2, mPaint);
  }

  /*
   * (non-Javadoc)
   * 
   * @param widthMeasureSpec
   * 
   * @param heightMeasureSpec
   * 
   * @see android.view.View#onMeasure(int, int)
   */
  @Override
  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    setMeasuredDimension(measureWidth(widthMeasureSpec),
        measureHeight(heightMeasureSpec));
  }

  /*
   * (non-Javadoc)
   * 
   * @param gainFocus
   * 
   * @param direction
   * 
   * @param previouslyFocusedRect
   * 
   * @see android.view.View#onFocusChanged(boolean, int,
   * android.graphics.Rect)
   */
  @Override
  protected void onFocusChanged(boolean gainFocus, int direction,
      Rect previouslyFocusedRect) {
    super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
  }

  private int measureWidth(int measureSpec) {
    int result = 0;
    int specMode = MeasureSpec.getMode(measureSpec);
    int specSize = MeasureSpec.getSize(measureSpec);

    if (specMode == MeasureSpec.EXACTLY) {
      result = specSize;
    } else if (specMode == MeasureSpec.AT_MOST) {
      result = Math.min(result, specSize);
    }
    return result;
  }

  private int measureHeight(int measureSpec) {
    int result = 0;
    int specMode = MeasureSpec.getMode(measureSpec);
    int specSize = MeasureSpec.getSize(measureSpec);

    if (specMode == MeasureSpec.EXACTLY) {
      result = specSize;
    } else if (specMode == MeasureSpec.AT_MOST) {
      result = Math.min(result, specSize);
    }
    return result;
  }

  // protected int[] getStyleableName(Context context) {
  // try {
  // StringBuilder sbStyleable = new StringBuilder();
  // sbStyleable.append(context.getApplicationContext().getPackageName());
  // sbStyleable.append(".R$styleable");
  // String styleable = sbStyleable.toString();
  // int[] id =
  // (int[])Class.forName(styleable).getField(STYLEABLE_NAME).get(null);
  // return id;
  // }catch (Exception e) {
  // return null;
  // }
  // }
  //
  // protected int getStyleableAttrId(Context context , String attr) {
  // try {
  // StringBuilder sbStyleable = new StringBuilder();
  // sbStyleable.append(context.getApplicationContext().getPackageName());
  // sbStyleable.append(".R$styleable");
  // String styleable = sbStyleable.toString();
  //
  // Class<?> clazz = Class.forName(styleable);
  // int[] id = (int[])clazz.getField(STYLEABLE_NAME).get(null);
  //
  // StringBuilder sbAttribute = new StringBuilder();
  // sbAttribute.append(STYLEABLE_NAME);
  // sbAttribute.append("_");
  // sbAttribute.append(attr);
  // String attribute = sbAttribute.toString();
  //
  // int index = clazz.getField(attribute).getInt(null);
  // return id[index];
  // }catch (Exception e) {
  // return 0;
  // }
  // }
  
  
  /**
   * @return the displayBorder
   */
  public boolean isDisplayBorder() {
    return displayBorder;
  }

  /**
   * @param displayBorder
   *            the displayBorder to set
   */
  public void setDisplayBorder(boolean displayBorder) {
    this.displayBorder = displayBorder;
  }

  /**
   * @return the borderColor
   */
  public int getBorderColor() {
    return borderColor;
  }

  /**
   * @param borderColor
   *            the borderColor to set
   */
  public void setBorderColor(int borderColor) {
    this.borderColor = borderColor;
  }

  /**
   * @return the borderWidth
   */
  public float getBorderWidth() {
    return borderWidth;
  }

  /**
   * @param borderWidth
   *            the borderWidth to set
   */
  public void setBorderWidth(float borderWidth) {
    this.borderWidth = borderWidth;
  }
}




Java Source Code List

cn.limc.androidcharts.AndroidChartsActivity.java
cn.limc.androidcharts.common.Axis.java
cn.limc.androidcharts.common.ChartRender.java
cn.limc.androidcharts.common.CrossLines.java
cn.limc.androidcharts.common.HorizontalAxis.java
cn.limc.androidcharts.common.IAxis.java
cn.limc.androidcharts.common.IChart.java
cn.limc.androidcharts.common.ICrossLines.java
cn.limc.androidcharts.common.IDataCursor.java
cn.limc.androidcharts.common.IFlexableGrid.java
cn.limc.androidcharts.common.IGrid.java
cn.limc.androidcharts.common.IQuadrant.java
cn.limc.androidcharts.common.IRender.java
cn.limc.androidcharts.common.Quadrant.java
cn.limc.androidcharts.common.SectionDataCursor.java
cn.limc.androidcharts.common.SimpleDataCursor.java
cn.limc.androidcharts.common.VerticalAxis.java
cn.limc.androidcharts.entity.ColoredStickEntity.java
cn.limc.androidcharts.entity.DateValueEntity.java
cn.limc.androidcharts.entity.IChartData.java
cn.limc.androidcharts.entity.IEntity.java
cn.limc.androidcharts.entity.IHasColor.java
cn.limc.androidcharts.entity.IHasDate.java
cn.limc.androidcharts.entity.IMeasurable.java
cn.limc.androidcharts.entity.IStickEntity.java
cn.limc.androidcharts.entity.LineEntity.java
cn.limc.androidcharts.entity.ListChartData.java
cn.limc.androidcharts.entity.MACDEntity.java
cn.limc.androidcharts.entity.OHLCEntity.java
cn.limc.androidcharts.entity.StickEntity.java
cn.limc.androidcharts.entity.TitleValueColorEntity.java
cn.limc.androidcharts.entity.TitleValueEntity.java
cn.limc.androidcharts.event.IDisplayCursorListener.java
cn.limc.androidcharts.event.IGestureDetector.java
cn.limc.androidcharts.event.ISlipable.java
cn.limc.androidcharts.event.ITouchable.java
cn.limc.androidcharts.event.IZoomable.java
cn.limc.androidcharts.event.OnSlipGestureListener.java
cn.limc.androidcharts.event.OnTouchGestureListener.java
cn.limc.androidcharts.event.OnZoomGestureListener.java
cn.limc.androidcharts.event.SlipGestureDetector.java
cn.limc.androidcharts.event.TouchGestureDetector.java
cn.limc.androidcharts.event.ZoomGestureDetector.java
cn.limc.androidcharts.mole.AbstractMole.java
cn.limc.androidcharts.mole.IMoleProvider.java
cn.limc.androidcharts.mole.IMole.java
cn.limc.androidcharts.mole.RectMole.java
cn.limc.androidcharts.mole.StickMole.java
cn.limc.androidcharts.view.AbstractBaseChart.java
cn.limc.androidcharts.view.BOLLMASlipCandleStickChart.java
cn.limc.androidcharts.view.CandleStickChart.java
cn.limc.androidcharts.view.ColoredSlipStickChart.java
cn.limc.androidcharts.view.DataGridChart.java
cn.limc.androidcharts.view.GridChart.java
cn.limc.androidcharts.view.LineChart.java
cn.limc.androidcharts.view.MACDChart.java
cn.limc.androidcharts.view.MACandleStickChart.java
cn.limc.androidcharts.view.MASlipCandleStickChart.java
cn.limc.androidcharts.view.MASlipStickChart.java
cn.limc.androidcharts.view.MAStickChart.java
cn.limc.androidcharts.view.MinusStickChart.java
cn.limc.androidcharts.view.PeriodDataGridChart.java
cn.limc.androidcharts.view.PieChart.java
cn.limc.androidcharts.view.RadarChart.java
cn.limc.androidcharts.view.RoseChart.java
cn.limc.androidcharts.view.RoundChart.java
cn.limc.androidcharts.view.SlipAreaChart.java
cn.limc.androidcharts.view.SlipBandAreaChart.java
cn.limc.androidcharts.view.SlipCandleStickChart.java
cn.limc.androidcharts.view.SlipLineChart.java
cn.limc.androidcharts.view.SlipMinusStickChart.java
cn.limc.androidcharts.view.SlipStickChart.java
cn.limc.androidcharts.view.SpiderWebChart.java
cn.limc.androidcharts.view.StickChart.java