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;
//from   www. ja  v  a 2s  . c om
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