//不允许用户修改,想要修改宽高,使用mWidth、mBaseHeight。
protected final float DEF_WIDTH = 650;
protected final float DEF_HIGHT = 400;
//测量的控件宽高,会在onMeasure中进行测量。
protected int mBaseWidth;
protected int mBaseHeight;
private Paint mInnerXPaint;
private Paint mLoadingPaint;
private Paint mXYPaint;
private Paint mLinePaint;
private Paint dotPaint;
//上下左右padding,允许修改
//x、y轴指示文字字体的大小
protected float mXYTextSize = 25;
//左侧文字距离左边线线的距离
protected float mLeftTxtPadding = 64;
//底部文字距离底部线的距离
protected float mBottomTxtPadding = 40;
protected float mBasePaddingTop = 200;
protected float mBasePaddingBottom = 200;
protected float mBasePaddingLeft = 150;
protected float mBasePaddingRight = 50;
private ArrayList<Point> mPoints;
private float mPerX;
private float mPerY;
public ChartView(Context context) {
this(context, null);
}
public ChartView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public ChartView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec);
int widthSpecSize = MeasureSpec.getSize(widthMeasureSpec);
int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec);
int heightSpecSize = MeasureSpec.getSize(heightMeasureSpec);
if (widthSpecMode == AT_MOST && heightSpecMode == AT_MOST) {
setMeasuredDimension((int) DEF_WIDTH, (int) DEF_HIGHT);
} else if (widthSpecMode == AT_MOST) {
自定义折线图,仿蚂蚁财富
最新推荐文章于 2024-04-07 04:09:18 发布