Android Open Source - customhellochartdemo Line






From Project

Back to project page customhellochartdemo.

License

The source code is released under:

Apache License

If you think the Android project customhellochartdemo 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 lecho.lib.hellocharts.model;
//  w w  w .j  a v  a2  s.co  m
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import android.graphics.PathEffect;

import lecho.lib.hellocharts.util.Utils;
import lecho.lib.hellocharts.view.Chart;

/**
 * Single line for line chart.
 * 
 */
public class Line {
  private static final int DEFAULT_LINE_STROKE_WIDTH_DP = 3;
  private static final int DEFAULT_POINT_RADIUS_DP = 6;
  private static final int DEFAULT_AREA_TRANSPARENCY = 64;
  private int color = Utils.DEFAULT_COLOR;
  private int darkenColor = Utils.DEFAULT_DARKEN_COLOR;
  /** Transparency of area when line is filled. **/
  private int areaTransparency = DEFAULT_AREA_TRANSPARENCY;
  private int strokeWidth = DEFAULT_LINE_STROKE_WIDTH_DP;
  private int pointRadius = DEFAULT_POINT_RADIUS_DP;
  private boolean hasPoints = true;
  private boolean hasLines = true;
  private boolean hasLabels = false;
  private boolean hasLabelsOnlyForSelected = false;
  private boolean isCubic = false;
  private boolean isFilled = false;
  private ValueShape shape = ValueShape.CIRCLE;
  private PathEffect pathEffect;
  private ValueFormatter formatter = new SimpleValueFormatter();
  private List<PointValue> values = new ArrayList<PointValue>();

  public Line() {

  }

  public Line(List<PointValue> values) {
    setValues(values);
  }

  public Line(Line line) {
    this.color = line.color;
    this.darkenColor = line.color;
    this.areaTransparency = line.areaTransparency;
    this.strokeWidth = line.strokeWidth;
    this.pointRadius = line.pointRadius;
    this.hasPoints = line.hasPoints;
    this.hasLines = line.hasLines;
    this.hasLabels = line.hasLabels;
    this.hasLabelsOnlyForSelected = line.hasLabelsOnlyForSelected;
    this.isCubic = line.isCubic;
    this.isFilled = line.isFilled;
    this.shape = line.shape;
    this.pathEffect = line.pathEffect;
    this.formatter = line.formatter;

    for (PointValue pointValue : line.values) {
      this.values.add(new PointValue(pointValue));
    }
  }

  public void update(float scale) {
    for (PointValue value : values) {
      value.update(scale);
    }
  }

  public void finish() {
    for (PointValue value : values) {
      value.finish();
    }
  }

  public void setValues(List<PointValue> values) {
    if (null == values) {
      this.values = Collections.emptyList();
    } else {
      this.values = values;
    }
  }

  public List<PointValue> getValues() {
    return this.values;
  }

  public int getColor() {
    return color;
  }

  public Line setColor(int color) {
    this.color = color;
    this.darkenColor = Utils.darkenColor(color);
    return this;
  }

  public int getDarkenColor() {
    return darkenColor;
  }

  /**
   * @see #setAreaTransparency(int)
   */
  public int getAreaTransparency() {
    return areaTransparency;
  }

  /**
   * Set area transparency(255 is full opacity) for filled lines
   * 
   * @param areaTransparency
   * @return
   */
  public Line setAreaTransparency(int areaTransparency) {
    this.areaTransparency = areaTransparency;
    return this;
  }

  public int getStrokeWidth() {
    return strokeWidth;
  }

  public Line setStrokeWidth(int strokeWidth) {
    this.strokeWidth = strokeWidth;
    return this;
  }

  public boolean hasPoints() {
    return hasPoints;
  }

  public Line setHasPoints(boolean hasPoints) {
    this.hasPoints = hasPoints;
    return this;
  }

  public boolean hasLines() {
    return hasLines;
  }

  public Line setHasLines(boolean hasLines) {
    this.hasLines = hasLines;
    return this;
  }

  public boolean hasLabels() {
    return hasLabels;
  }

  public Line setHasLabels(boolean hasLabels) {
    this.hasLabels = hasLabels;
    if (hasLabels) {
      this.hasLabelsOnlyForSelected = false;
    }
    return this;
  }

  /**
   * @see #setHasLabelsOnlyForSelected(boolean)
   */
  public boolean hasLabelsOnlyForSelected() {
    return hasLabelsOnlyForSelected;
  }

  /**
   * Set true if you want to show value labels only for selected value, works best when chart has
   * isValueSelectionEnabled set to true {@link Chart#setValueSelectionEnabled(boolean)}.
   */
  public Line setHasLabelsOnlyForSelected(boolean hasLabelsOnlyForSelected) {
    this.hasLabelsOnlyForSelected = hasLabelsOnlyForSelected;
    if (hasLabelsOnlyForSelected) {
      this.hasLabels = false;
    }
    return this;
  }

  public int getPointRadius() {
    return pointRadius;
  }

  /**
   * Set radius for points for this line.
   * 
   * @param pointRadius
   * @return
   */
  public Line setPointRadius(int pointRadius) {
    this.pointRadius = pointRadius;
    return this;
  }

  public boolean isCubic() {
    return isCubic;
  }

  public Line setCubic(boolean isCubic) {
    this.isCubic = isCubic;
    return this;
  }

  public boolean isFilled() {
    return isFilled;
  }

  public Line setFilled(boolean isFilled) {
    this.isFilled = isFilled;
    return this;
  }

  /**
   * @see #setShape(ValueShape)
   */
  public ValueShape getShape() {
    return shape;
  }

  /**
   * Set shape for points, possible values: SQUARE, CIRCLE
   * 
   * @param shape
   * @return
   */
  public Line setShape(ValueShape shape) {
    this.shape = shape;
    return this;
  }

  public PathEffect getPathEffect() {
    return pathEffect;
  }

  /**
   * Set path effect for this line, note: it will slow down drawing, try to not use complicated effects,
   * DashPathEffect should be safe choice.
   * 
   * @param pathEffect
   */
  public void setPathEffect(PathEffect pathEffect) {
    this.pathEffect = pathEffect;
  }

  public ValueFormatter getFormatter() {
    return formatter;
  }

  public Line setFormatter(ValueFormatter formatter) {
    if (null == formatter) {
      this.formatter = new SimpleValueFormatter();
    } else {
      this.formatter = formatter;
    }
    return this;
  }
}




Java Source Code List

lecho.lib.hellocharts.ChartComputator.java
lecho.lib.hellocharts.DummyChartAnimationListener.java
lecho.lib.hellocharts.DummyVieportChangeListener.java
lecho.lib.hellocharts.PreviewChartComputator.java
lecho.lib.hellocharts.ViewportChangeListener.java
lecho.lib.hellocharts.animation.ChartAnimationListener.java
lecho.lib.hellocharts.animation.ChartDataAnimatorV14.java
lecho.lib.hellocharts.animation.ChartDataAnimatorV8.java
lecho.lib.hellocharts.animation.ChartDataAnimator.java
lecho.lib.hellocharts.animation.ChartViewportAnimatorV14.java
lecho.lib.hellocharts.animation.ChartViewportAnimatorV8.java
lecho.lib.hellocharts.animation.ChartViewportAnimator.java
lecho.lib.hellocharts.animation.PieChartRotationAnimatorV14.java
lecho.lib.hellocharts.animation.PieChartRotationAnimatorV8.java
lecho.lib.hellocharts.animation.PieChartRotationAnimator.java
lecho.lib.hellocharts.gesture.ChartScroller.java
lecho.lib.hellocharts.gesture.ChartTouchHandler.java
lecho.lib.hellocharts.gesture.ChartZoomer.java
lecho.lib.hellocharts.gesture.ContainerScrollType.java
lecho.lib.hellocharts.gesture.PieChartTouchHandler.java
lecho.lib.hellocharts.gesture.PreviewChartTouchHandler.java
lecho.lib.hellocharts.gesture.ZoomType.java
lecho.lib.hellocharts.gesture.ZoomerCompat.java
lecho.lib.hellocharts.model.AbstractChartData.java
lecho.lib.hellocharts.model.ArcValue.java
lecho.lib.hellocharts.model.AxisValue.java
lecho.lib.hellocharts.model.Axis.java
lecho.lib.hellocharts.model.BubbleChartData.java
lecho.lib.hellocharts.model.BubbleValue.java
lecho.lib.hellocharts.model.ChartData.java
lecho.lib.hellocharts.model.ColumnChartData.java
lecho.lib.hellocharts.model.ColumnValue.java
lecho.lib.hellocharts.model.Column.java
lecho.lib.hellocharts.model.ComboLineColumnChartData.java
lecho.lib.hellocharts.model.LineChartData.java
lecho.lib.hellocharts.model.Line.java
lecho.lib.hellocharts.model.PieChartData.java
lecho.lib.hellocharts.model.PointValue.java
lecho.lib.hellocharts.model.SelectedValue.java
lecho.lib.hellocharts.model.SimpleValueFormatter.java
lecho.lib.hellocharts.model.ValueFormatter.java
lecho.lib.hellocharts.model.ValueShape.java
lecho.lib.hellocharts.model.Viewport.java
lecho.lib.hellocharts.provider.BubbleChartDataProvider.java
lecho.lib.hellocharts.provider.ColumnChartDataProvider.java
lecho.lib.hellocharts.provider.ComboLineColumnChartDataProvider.java
lecho.lib.hellocharts.provider.LineChartDataProvider.java
lecho.lib.hellocharts.provider.PieChartDataProvider.java
lecho.lib.hellocharts.renderer.AbstractChartRenderer.java
lecho.lib.hellocharts.renderer.AxesRenderer.java
lecho.lib.hellocharts.renderer.BubbleChartRenderer.java
lecho.lib.hellocharts.renderer.ChartRenderer.java
lecho.lib.hellocharts.renderer.ColumnChartRenderer.java
lecho.lib.hellocharts.renderer.ComboLineColumnChartRenderer.java
lecho.lib.hellocharts.renderer.LineChartRenderer.java
lecho.lib.hellocharts.renderer.PieChartRenderer.java
lecho.lib.hellocharts.renderer.PreviewColumnChartRenderer.java
lecho.lib.hellocharts.renderer.PreviewLineChartRenderer.java
lecho.lib.hellocharts.samples.AboutActivity.java
lecho.lib.hellocharts.samples.BrokenLineChartActivity.java
lecho.lib.hellocharts.samples.BrokenLineView.java
lecho.lib.hellocharts.samples.BubbleChartActivity.java
lecho.lib.hellocharts.samples.ColumnChartActivity.java
lecho.lib.hellocharts.samples.ComboLineColumnChartActivity.java
lecho.lib.hellocharts.samples.GoodBadChartActivity.java
lecho.lib.hellocharts.samples.LineChartActivity.java
lecho.lib.hellocharts.samples.LineColumnDependencyActivity.java
lecho.lib.hellocharts.samples.MainActivity.java
lecho.lib.hellocharts.samples.PieChartActivity.java
lecho.lib.hellocharts.samples.PreviewColumnChartActivity.java
lecho.lib.hellocharts.samples.PreviewLineChartActivity.java
lecho.lib.hellocharts.samples.SpeedChartActivity.java
lecho.lib.hellocharts.samples.TempoChartActivity.java
lecho.lib.hellocharts.samples.ViewPagerChartsActivity.java
lecho.lib.hellocharts.util.AxisAutoValues.java
lecho.lib.hellocharts.util.Utils.java
lecho.lib.hellocharts.view.AbstractChartView.java
lecho.lib.hellocharts.view.BubbleChartView.java
lecho.lib.hellocharts.view.Chart.java
lecho.lib.hellocharts.view.ColumnChartView.java
lecho.lib.hellocharts.view.ComboLineColumnChartView.java
lecho.lib.hellocharts.view.LineChartView.java
lecho.lib.hellocharts.view.PieChartView.java
lecho.lib.hellocharts.view.PreviewColumnChartView.java
lecho.lib.hellocharts.view.PreviewLineChartView.java
lecho.lib.hellocharts.view.hack.HackyDrawerLayout.java
lecho.lib.hellocharts.view.hack.HackyViewPager.java