Android Open Source - markj Line Graph 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.drawgraph;
/ / f r o m w w w . j a v a 2 s . c o m
import android.graphics.Canvas;
import android.graphics.Paint;
public class LineGraphSkin extends GraphSkin{
private CircleGraphEl circle;
private LineGraphEl line;
private int maxMarginSize;
public LineGraphSkin(int maxMeasure){
super (maxMeasure);
circle = new CircleGraphEl(maxMeasure);
line = new LineGraphEl(maxMeasure);
}
@Override
public void draw(Canvas canvas) {
circle.draw(canvas);
line.draw(canvas);
}
@Override
public void add(int meansure, SimpleStyle lineStyle) {
this.add(meansure, lineStyle, null);
}
public void add(int meansure, SimpleStyle lineStyle, SimpleStyle cirleSytle){
if (cirleSytle==null){
cirleSytle = new SimpleStyle(0,0,0,0);
}
circle.add(meansure, cirleSytle);
line.add(meansure, lineStyle);
}
public void addAll(int [] meansures, SimpleStyle lineStyle,SimpleStyle cirleSytle){
for (int i=0;i<meansures.length;i++){
add(meansures[i],lineStyle,cirleSytle);
}
}
public void addAll(int [] meansures, SimpleStyle lineStyle){
for (int i=0;i<meansures.length;i++){
add(meansures[i],lineStyle,null);
}
}
public static SimpleStyle getLineSimpleStyle(int color,int width){
return new SimpleStyle(color, width,0,0);
}
public static SimpleStyle getCircleSimpleStyle(int color,int width, int circleSize){
return new SimpleStyle(color, width,circleSize,0);
}
@Override
public void setWidth(int width) {
super.setWidth(width);
circle.setWidth(width);
line.setWidth(width);
}
@Override
public void setHeight(int height) {
super.setHeight(height);
circle.setHeight(height);
line.setHeight(height);
}
@Override
public void setTopMargin(int topMargin) {
circle.setTopMargin(topMargin);
line.setTopMargin(topMargin);
super.setTopMargin(topMargin);
}
@Override
public void setBottomMargin(int bottomMargin) {
circle.setBottomMargin(bottomMargin);
line.setBottomMargin(bottomMargin);
super.setBottomMargin(bottomMargin);
}
private class LineGraphEl extends GraphSkin{
public LineGraphEl(int maxMeasure) {
super (maxMeasure);
}
@Override
public void add(int meansure, SimpleStyle style) {
super.add(meansure, style);
}
@Override
public void draw(Canvas canvas) {
Paint Pnt = new Paint();
int preX=0;
int preY=0;
for (int i=0;i<list.size();i++){
SimpleStyle style = list.get(i);
SimpleStyle cStyle = circle.list.get(i);
Pnt.setColor(style.getColor());
Pnt.setStrokeWidth(style.getWidth());
int height = getHeight();
int x = getWidth()*i/list.size()+getWidth()/list.size()/2;
int y = height*(getMaxMeasure()-style.meansure)/getMaxMeasure()+getTopMargin();
if (i!=0){
int dx =x-preX;
int dy = preY-y;
float R = (float )Math.sqrt(dx*dx+dy*dy);
float x0 =cStyle.size*dx/R;
float y0 =cStyle.size*dy/R;
canvas.drawLine(preX+x0,preY-y0,x-x0,y+y0,Pnt);
}
preX = x;
preY = y;
}
}
}
@Override
public int getBoradTopMargin() {
return maxMarginSize;
}
@Override
public int getBoradBottomMargin() {
return maxMarginSize;
}
private class CircleGraphEl extends GraphSkin{
public CircleGraphEl(int maxMeasure) {
super (maxMeasure);
maxMarginSize = 0;
}
@Override
public void add(int meansure, SimpleStyle style) {
if (maxMarginSize<style.getWidth()+style.getSize()){
maxMarginSize = style.getWidth()+style.getSize();
}
super.add(meansure, style);
}
@Override
public void draw(Canvas canvas) {
Paint Pnt = new Paint();
Pnt.setStyle(Paint.Style.STROKE);
for (int i=0;i<list.size();i++){
SimpleStyle style = list.get(i);
Pnt.setColor(style.getColor());
Pnt.setStrokeWidth(style.getWidth());
int height = getHeight();
int x = getWidth()*i/list.size()+getWidth()/list.size()/2;
int y = height*(getMaxMeasure()-style.meansure)/getMaxMeasure()+getTopMargin();
canvas.drawCircle(x, y, style.size, Pnt);
}
}
}
}
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