package com.mm.android.deviceaddmodule.mobilecommon.widget.linechart.data; import java.util.ArrayList; import java.util.List; public class Lines { private List lines = new ArrayList<>(); /************************ x,y的范围 **********************/ private double mYMax; private double mYMin; private double mXMax; private double mXMin; /** * 是否使用 设置的最小最大值 */ private boolean isYCustomMaxMin = false; /** * 是否使用 设置的最小最大值 */ private boolean isXCustomMaxMin = false; public Lines() { } public Lines(List lines) { setLines(lines); } public List getLines() { return lines; } public void setLines(List lines) { this.lines = lines; calMinMax(lines); } public void addLine(Line line) { lines.add(line); calMinMax(lines); } private void calMinMax(List lines) { if (!isXCustomMaxMin) { mXMax = Double.MIN_VALUE; mXMin = Double.MAX_VALUE; } if (!isYCustomMaxMin) { // mYMax = Double.MIN_VALUE; mYMax = 0; mYMin = Double.MAX_VALUE; } for (Line line : lines) { if (!isXCustomMaxMin) { if (line.getmXMin() < mXMin) { mXMin = - line.getmXMax()/30; } if (line.getmXMax() > mXMax) { mXMax = line.getmXMax()*31/30; } } if (!isYCustomMaxMin) { if (line.getmYMin() < mYMin) { mYMin = line.getmYMin(); } if (line.getmYMax() > mYMax) { mYMax = line.getmYMax(); } } } // 考虑到只有一个点的问题 if (mXMax == mXMin) { double half = Math.abs(mXMax) / 2; mXMax += half; mXMin -= half; } if (mYMax == mYMin) { double half = Math.abs(mYMax) / 2; mYMax += half; mYMin -= half; } } public void calMinMax() { if (lines != null) { calMinMax(lines); } } public double getmYMax() { return mYMax; } public void setmYMax(double mYMax) { this.mYMax = mYMax; } public double getmYMin() { return mYMin; } public void setmYMin(double mYMin) { this.mYMin = mYMin; } public double getmXMax() { return mXMax; } public void setmXMax(double mXMax) { this.mXMax = mXMax; } public double getmXMin() { return mXMin; } public void setmXMin(double mXMin) { this.mXMin = mXMin; } public boolean isYCustomMaxMin() { return isYCustomMaxMin; } public void setYCustomMaxMin(boolean customMaxMin) { isYCustomMaxMin = customMaxMin; } public boolean isXCustomMaxMin() { return isXCustomMaxMin; } public void setXCustomMaxMin(boolean XCustomMaxMin) { isXCustomMaxMin = XCustomMaxMin; } }