Android Open Source - markj Pie Arc Round Skin






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;
//ww w  . j a  v a  2s  .c o  m
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;

/**
 * ?????????? ???? ?????? ????
 * 
 * @author ???
 * 
 */
public class PieArcRoundSkin implements IPieSkin {
  private PieLayout pl;
  float x, y;
  float rx, ry;
  float dx, dy;
  float dx2, dy2;
  float centerX;
  float centerY;
  float width;
  float height;
  float margin;
  float strokSize = 14f;
  boolean isFrist = true;
  float r;
  float realRadians;
  float startAngle;
  float maxAngle;

  public PieArcRoundSkin() {
  }

  @Override
  public void init(PieLayout pieLayout) {
    this.pl = pieLayout;
    strokSize = pl.getStrokSize();

  }

  @Override
  public void draw(PieLayout pieLayout, Canvas canvas, float startAngle, float maxAngle, float startRadians,
          float radians, int arcIndex) {
    if (isFrist) {
      if (pl == null) {
        return;
      }
      setSize(pl.getWidth(), pl.getHeight(), pl.getMaginArc(), startAngle,maxAngle);
      isFrist = false;
    }
    if (radians > 0) {
      drawLeftRound(canvas);
    }
    
    if(radians>=maxAngle-startAngle){
      drawRightRound(canvas);
    }
  }

  public void drawLeftRound(Canvas canvas) {
    Paint p = new Paint();
    p.setStyle(Paint.Style.FILL);
    p.setColor(Color.WHITE);
    p.setAntiAlias(true);
    RectF oval = new RectF(dx, dy, dx + strokSize, dy + strokSize);
    
    canvas.drawArc(oval, startAngle + 90, 180, true, p);
  }
  
  public void drawRightRound(Canvas canvas) {
    Paint p = new Paint();
    p.setStyle(Paint.Style.FILL);
    p.setColor(Color.WHITE);
    p.setAntiAlias(true);
    RectF oval = new RectF(dx2, dy2, dx2 + strokSize, dy2 + strokSize);
    
    canvas.drawArc(oval, maxAngle-startAngle+90-180 , 180, true, p);

  }

  public void setSize(float width, float height, float margin, float startAngle, float maxAngle) {
    this.startAngle = startAngle;
    this.margin = margin;
    this.width = width - margin * 2;
    this.height = height - margin * 2;
    reSetOval();
    reSetOval2();
  }

  private void reSetOval() {
    centerX = pl.getWidth() / 2;
    centerY = pl.getHeight() / 2;

    r = pl.getHeight() / 2;
    rx = r - margin - strokSize;
    ry = r - margin - strokSize;
    realRadians = Math.round((360 + (startAngle - 90) % 360) % 360);
    x = (float) (rx * Math.cos(Math.toRadians(realRadians)) + centerX - strokSize / 2);
    y = (float) (ry * Math.sin(Math.toRadians(realRadians)) + centerY);

    float realRadians2 = Math.round((360 + (startAngle + 90) % 360) % 360);

    dx = Math.round(x - (strokSize / 2 * Math.cos(Math.toRadians(realRadians2))));
    dy = Math.round(y - (strokSize / 2 + (strokSize / 2 * Math.sin(Math.toRadians(realRadians2)))));
  }
  
  private void reSetOval2() {
    centerX = pl.getWidth() / 2;
    centerY = pl.getHeight() / 2;

    r = pl.getHeight() / 2;
    rx = r - margin - strokSize;
    ry = r - margin - strokSize;
    realRadians = Math.round((360 + (maxAngle-startAngle - 90) % 360) % 360);
    x = (float) (rx * Math.cos(Math.toRadians(realRadians)) + centerX - strokSize / 2);
    y = (float) (ry * Math.sin(Math.toRadians(realRadians)) + centerY);

    float realRadians2 = Math.round((360 + (maxAngle-startAngle + 90) % 360) % 360);

    dx2 = Math.round(x - (strokSize / 2 * Math.cos(Math.toRadians(realRadians2))));
    dy2 = Math.round(y - (strokSize / 2 + (strokSize / 2 * Math.sin(Math.toRadians(realRadians2)))));
  }
}




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