Android Open Source - markj Arc






From Project

Back to project page markj.

License

The source code is released under:

GNU Lesser General Public License

If you think the Android project markj 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 com.markjmind.mobile.api.android.ui.graph;
//www  .j  a  v  a2 s.  com
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.EmbossMaskFilter;
import android.graphics.Paint;
import android.graphics.Paint.Cap;
import android.graphics.RectF;
import android.view.View;

/**
 * * ???????? ?? ??? ???? ????? ????.<br>
 * ?????? ????? Arc ?????? ?? ?? ??????.<br>
 * ?????? ????? ????????? ???? ???? ?????? ??? ????<br>
 * ????? ???? canvas?? ????? ????  ??????? ????????.<br>
 * ?? ????? ?? ??????? ???? ??.
 * @author ???
 */
public class Arc {
  private PieLayout pl;
  
  public float start=0;
  public float end=360;
  private int color=Color.BLUE;
  private int strokSize=1;
  private Paint paint;
  private RectF oval = new RectF();
  
  private float x=0;
  private float y=0;
  private float height;
  private float width;
  private float margin = 0;
  
  private boolean isCapRound = false; 
  private EmbossMaskFilter emboss = null;
  /**
   * ?????
   * @param pl PieLayout ???
   */
  public Arc(PieLayout pl){
    this.pl = pl;
    init();
    setArc(start,end,color);
  }
  
  /**
   * ?????
   * @param width ????
   * @param height ????
   * @param pl PieLayout ???
   */
  public Arc(float width,float height,PieLayout pl){
    this.pl = pl;
    init();
    setSize(width,height);
    setArc(start,end,color);
  }
  
  private void init(){
    paint = new Paint();
//    pl.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
    if(isCapRound){
      paint.setStrokeCap(Cap.ROUND);
    }
    if(emboss!=null){
      paint.setMaskFilter(emboss);
    }
    paint.setAntiAlias(true);
    paint.setStyle(Paint.Style.STROKE);
    
  }
  
  /**
   * ????? ??
   * @param width ????
   * @param height ????
   */
  public void setSize(float width,float height, float margin){
    this.margin = margin;
    this.width = width-margin*2;
    this.height = height-margin*2;
    reSetOval();
  }
  
  /**
   * ????? ??
   * @param width ????
   * @param height ????
   */
  public void setSize(float width,float height){
    this.setSize(width, height,0);
  }
  
  /**
   *  ?????? ??? ??? ????.
   */
  private void reSetOval(){
    float strok = strokSize/2;
    float jirm;
    if(width < height){
      this.x = strok+margin;
      this.y = (height-width)/2+strok+margin;
      jirm = width;
    }else{
      this.x = (width-height)/2+strok+margin;
      this.y = strok+margin;
      jirm = height;
    }
    width = jirm+x-strok*2;
    height = jirm+y-strok*2;
    oval.set(x,y,width,height);
    Math.sin(getRadian(20));
  }
  
  public double getRadian(double degree) {
    double radian = 0;
    radian = Math.PI * degree/180;
    return radian;
  }

  /**
   * ????(?????)?? ?? ?????(?????)????? ??<br>
   * ??? ??? ????.
   * @param start ????(?????)
   * @param end ?????(?????)
   * @param color ??
   */
  public void setArc(float start, float end, int color){
    this.start = start;
    this.end = end;
    this.color = color;
    setPaint(color);
  }
  
  /**
   * ????? ???????? ????.
   * @param start ????(?????)
   * @param end ?????(?????)
   */
  public void setAngle(float start, float end){
    this.start = start;
    this.end = end;
  }
  
  /**
   * ?,??????? paint???? ????.
   * @param paint paint?? ???
   */
  public void setPaint(Paint paint){
    this.paint = paint;
  }
  
  /**
   * ??? ??? strokSize ??????? ?? ????.
   * @param color ??
   * @param strokSize ????
   */
  public void setPaint(int color, int strokSize){
    setColor(color);
    setStrokSize(strokSize);
  }
  
  /**
   * ??? ??? strokSize ??????? ?? ????.
   * @param color ??
   * @param strokSize ????
   */
  public void setPaint(int color){
    setPaint(color, 5);
  }
  
  /**
   * ???? ??? ????.
   * @param color ??
   */
  public void setColor(int color){
    this.color = color;
    paint.setColor(color);
  }
  
  /**
   * ???? ???? ????.
   * @param size ????
   */
  public void setStrokSize(int size){
    this.strokSize = size;
    paint.setStrokeWidth(strokSize);
  }
  
  /**
   * ?? ???.
   * @param canvas canvas ???
   */
  public void draw(Canvas canvas){
    oval = new RectF(x,y,width,height);
    canvas.drawArc(oval, start-90, end, false, paint);
  }
  
  /**
   * ?????? ????????? ?? ???? ????? ?? ????. 
   * @param end ?????(?????)
   * @param color ??
   */
  public Arc addArcAngle(float end,int color){
    return pl.addArc(this.start+this.end, end, color);
  }
  
  /**
   * ?????? ????????? ?? ???? ????? ?? ????. 
   * @param end ?????(?????)
   * @param color ??
   */
  public Arc addArcPercent(int addPercent,int color){
    float cap = Math.round(pl.getMaxAngle() - pl.getStartAngle());
    float curr = Math.round(cap*addPercent/100);
    return addArcAngle(curr, color);
  }
  
  
  public Arc setCapRound(boolean isCapRound){
    this.isCapRound = isCapRound;
    init();
    return this;
  }
  
  public Arc setMaskFilter(EmbossMaskFilter emboss){
    this.emboss = emboss;
    init();
    return this;
  }
  
  public EmbossMaskFilter getMaskFilter(){
    return emboss;
  }

}




Java Source Code List

com.markjmind.mobile.api.android.controller.JwAsyncTask.java
com.markjmind.mobile.api.android.controller.JwMapperException.java
com.markjmind.mobile.api.android.controller.JwMemberMapper.java
com.markjmind.mobile.api.android.controller.JwStringID.java
com.markjmind.mobile.api.android.controller.JwViewController.java
com.markjmind.mobile.api.android.controller.JwViewerCache.java
com.markjmind.mobile.api.android.controller.JwViewer.java
com.markjmind.mobile.api.android.controller.Jwc.java
com.markjmind.mobile.api.android.controller.OnClickListenerReceiver.java
com.markjmind.mobile.api.android.controller.ViewerXmlMapper.java
com.markjmind.mobile.api.android.exception.JwErrorCode.java
com.markjmind.mobile.api.android.exception.JwException.java
com.markjmind.mobile.api.android.json.JSONMsgString.java
com.markjmind.mobile.api.android.json.JwJOSNTreeArray.java
com.markjmind.mobile.api.android.json.JwJSONReader.java
com.markjmind.mobile.api.android.ui.JwAnimation.java
com.markjmind.mobile.api.android.ui.JwGroup.java
com.markjmind.mobile.api.android.ui.JwMenu.java
com.markjmind.mobile.api.android.ui.JwOnGroupSelect.java
com.markjmind.mobile.api.android.ui.JwTabGroup.java
com.markjmind.mobile.api.android.ui.JwTouchGroupListener.java
com.markjmind.mobile.api.android.ui.JwTouchGroup.java
com.markjmind.mobile.api.android.ui.JwTouchMotionGroupLisener.java
com.markjmind.mobile.api.android.ui.JwTouchMotionGroup.java
com.markjmind.mobile.api.android.ui.drawgraph.GraphBoard.java
com.markjmind.mobile.api.android.ui.drawgraph.GraphSkin.java
com.markjmind.mobile.api.android.ui.drawgraph.HBackLineSkin.java
com.markjmind.mobile.api.android.ui.drawgraph.LineGraphSkin.java
com.markjmind.mobile.api.android.ui.drawgraph.PieGraph.java
com.markjmind.mobile.api.android.ui.drawgraph.RectGraphSkin.java
com.markjmind.mobile.api.android.ui.drawgraph.SimpleStyle.java
com.markjmind.mobile.api.android.ui.drawgraph.TextArraySkin.java
com.markjmind.mobile.api.android.ui.drawgraph.VBackLineSkin.java
com.markjmind.mobile.api.android.ui.graph.Arc.java
com.markjmind.mobile.api.android.ui.graph.BarElement.java
com.markjmind.mobile.api.android.ui.graph.BarLayout.java
com.markjmind.mobile.api.android.ui.graph.Bar.java
com.markjmind.mobile.api.android.ui.graph.IPieSkin.java
com.markjmind.mobile.api.android.ui.graph.LineLayout.java
com.markjmind.mobile.api.android.ui.graph.MeasureLayout.java
com.markjmind.mobile.api.android.ui.graph.PieArcRoundSkin.java
com.markjmind.mobile.api.android.ui.graph.PieLayout.java
com.markjmind.mobile.api.android.ui.graph.PiePercentSkin.java
com.markjmind.mobile.api.android.ui.view.JwBaseDropDown.java
com.markjmind.mobile.api.android.ui.view.JwDropDown.java
com.markjmind.mobile.api.android.ui.view.JwSlidingLayout.java
com.markjmind.mobile.api.android.ui.view.JwWheelView.java
com.markjmind.mobile.api.android.ui.view.StickerListener.java
com.markjmind.mobile.api.android.ui.view.StickerView.java
com.markjmind.mobile.api.android.ui.view.textview.JwTextViewAutoScale.java
com.markjmind.mobile.api.android.ui.view.textview.JwTextViewFonts.java
com.markjmind.mobile.api.android.ui.view.textview.JwTextViewWrapScale.java
com.markjmind.mobile.api.android.ui.wrapper.JwAlertDialog.java
com.markjmind.mobile.api.android.ui.wrapper.JwToast.java
com.markjmind.mobile.api.android.util.JwFile.java
com.markjmind.mobile.api.android.util.JwPreferenceList.java
com.markjmind.mobile.api.android.util.JwPreference.java
com.markjmind.mobile.api.android.util.JwSound.java
com.markjmind.mobile.api.android.util.JwTextUtils.java
com.markjmind.mobile.api.android.util.PhoneInfo.java
com.markjmind.mobile.api.android.util.WebConnection.java
com.markjmind.mobile.api.android.xml.JwDomHandler.java
com.markjmind.mobile.api.android.xml.JwDomLoader.java
com.markjmind.mobile.api.android.xml.JwEditElementHandler.java
com.markjmind.mobile.api.android.xml.JwXmlLoader.java
com.markjmind.mobile.api.android.xml.JwXmlResoure.java
com.markjmind.mobile.api.hub.ArrayJDhub.java
com.markjmind.mobile.api.hub.DBhub.java
com.markjmind.mobile.api.hub.JDhub.java
com.markjmind.mobile.api.hub.Loader.java
com.markjmind.mobile.api.hub.StoreList.java
com.markjmind.mobile.api.hub.Store.java