Android Open Source - WhoIsThis View_ Pie Chart






From Project

Back to project page WhoIsThis.

License

The source code is released under:

MIT License

If you think the Android project WhoIsThis 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

package hu.Edudroid.WhoIsThis;
//w  w  w . j a  va  2 s  .com
import java.util.List;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.BitmapFactory.Options;
import android.util.AttributeSet;
import android.view.View;

public class View_PieChart extends View {
  private static final int WAIT = 0;
  private static final int IS_READY_TO_DRAW = 1;
  private static final int IS_DRAW = 2;
  private static final float START_INC = 30;
  private Paint mBgPaints   = new Paint();
  private Paint mLinePaints = new Paint();
  private int   mOverlayId;
  private int   mWidth;
  private int   mHeight;
  private int   mGapLeft;
  private int   mGapRight;
  private int   mGapTop;
  private int   mGapBottom;
  private int   mBgColor;
  private int   mState = WAIT;
  private float mStart;
  private float mSweep;
  private int   mMaxConnection;
  private List<PieDetailsItem> mDataArray;
  //--------------------------------------------------------------------------------------
  public View_PieChart (Context context){
    super(context);
  }
  //--------------------------------------------------------------------------------------
  public View_PieChart(Context context, AttributeSet attrs) {
        super(context, attrs);
  }
    //--------------------------------------------------------------------------------------
    @Override 
    protected void onDraw(Canvas canvas) {
      super.onDraw(canvas);
      //------------------------------------------------------
      if (mState != IS_READY_TO_DRAW) return;
      canvas.drawColor(mBgColor);
      //------------------------------------------------------
      mBgPaints.setAntiAlias(true);
      mBgPaints.setStyle(Paint.Style.FILL);
      mBgPaints.setColor(0x88FF0000);
      mBgPaints.setStrokeWidth(0.5f);
      //------------------------------------------------------
      mLinePaints.setAntiAlias(true);
      mLinePaints.setStyle(Paint.Style.STROKE);
      mLinePaints.setColor(0xff000000);
      mLinePaints.setStrokeWidth(0.5f);
      //------------------------------------------------------
      RectF mOvals = new RectF( mGapLeft, mGapTop, mWidth - mGapRight, mHeight - mGapBottom);
      //------------------------------------------------------
      mStart = START_INC;
      PieDetailsItem Item;
      for (int i = 0; i < mDataArray.size(); i++) {
        Item = (PieDetailsItem) mDataArray.get(i);
        mBgPaints.setColor(Item.Color);
        mSweep = (float) 360 * ( (float)Item.Count / (float)mMaxConnection );
        canvas.drawArc(mOvals, mStart, mSweep, true, mBgPaints);
        canvas.drawArc(mOvals, mStart, mSweep, true, mLinePaints);
        mStart += mSweep;
        }
      //------------------------------------------------------
      /*Options options = new BitmapFactory.Options();
        options.inScaled = true;
      Bitmap OverlayBitmap = BitmapFactory.decodeResource(getResources(), mOverlayId, options);
      canvas.drawBitmap(OverlayBitmap, 0.0f, 0.0f, null);*/
      //------------------------------------------------------
      mState = IS_DRAW;
    }
    //--------------------------------------------------------------------------------------
    public void setGeometry(int width, int height, int GapLeft, int GapRight, int GapTop, int GapBottom, int OverlayId) {
      mWidth     = width;
        mHeight    = height;
        mGapLeft   = GapLeft;
        mGapRight  = GapRight;
        mGapTop    = GapTop;
        mGapBottom = GapBottom;
        mOverlayId = OverlayId;
    }
    //--------------------------------------------------------------------------------------
    public void setSkinParams(int bgColor) {
        mBgColor   = bgColor;
    }
    //--------------------------------------------------------------------------------------
    public void setData(List<PieDetailsItem> data, int MaxConnection) {
      mDataArray = data;
      mMaxConnection = MaxConnection;
      mState = IS_READY_TO_DRAW;
    }
    //--------------------------------------------------------------------------------------
    public void setState(int State) {
      mState = State;
    }
    //--------------------------------------------------------------------------------------
    public int getColorValue( int Index ) {
        if (mDataArray == null) return 0;
        if (Index < 0){
          return ((PieDetailsItem)mDataArray.get(0)).Color;
        } else if (Index >= mDataArray.size()){
          return ((PieDetailsItem)mDataArray.get(mDataArray.size()-1)).Color;
        } else {
          return ((PieDetailsItem)mDataArray.get(mDataArray.size()-1)).Color;
        }
    }
}




Java Source Code List

hu.Edudroid.WhoIsThis.Address.java
hu.Edudroid.WhoIsThis.CallHistoryItem.java
hu.Edudroid.WhoIsThis.CallHistory.java
hu.Edudroid.WhoIsThis.ContactAPI.java
hu.Edudroid.WhoIsThis.ContactDetails.java
hu.Edudroid.WhoIsThis.ContactList.java
hu.Edudroid.WhoIsThis.Contact.java
hu.Edudroid.WhoIsThis.Email.java
hu.Edudroid.WhoIsThis.FacebookFeed.java
hu.Edudroid.WhoIsThis.IM.java
hu.Edudroid.WhoIsThis.Main.java
hu.Edudroid.WhoIsThis.Organization.java
hu.Edudroid.WhoIsThis.Phone.java
hu.Edudroid.WhoIsThis.PieDetailsItem.java
hu.Edudroid.WhoIsThis.ShowStatistics.java
hu.Edudroid.WhoIsThis.View_PieChart.java