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;
/ / w w w . j a v a 2 s . 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