package com.csound.wizard.view.unit;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;
import com.csound.wizard.Const;
import com.csound.wizard.view.GraphUtils.Rect;
import com.csound.wizard.view.ViewUtils.OnMeasure;
import com.csound.wizard.view.ViewUtils;
public class LineView extends View {
private Paint paint= new Paint();
private Rect mRect = new Rect();
private boolean mIsHor;
private int
desiredWidth = Const.desiredWidth,
desiredHeight = Const.desiredLineHeight;
public LineView(Context context, int color, boolean isHor) {
super(context);
ViewUtils.initPaint(paint);
paint.setColor(color);
mIsHor = isHor;
}
@Override
protected void onDraw(Canvas canvas) {
mRect.setView(this);
if (mRect.getWidth() > mRect.getHeight()) {
canvas.drawLine(mRect.getLeft(), mRect.getCenterY(), mRect.getRight(), mRect.getCenterY(), paint);
} else {
canvas.drawLine(mRect.getCenterX(), mRect.getTop(), mRect.getCenterX(), mRect.getBottom(), paint);
}
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (mIsHor) {
ViewUtils.mkOnMeasure(widthMeasureSpec, heightMeasureSpec, desiredWidth, desiredHeight, onMeasureRunner);
} else {
ViewUtils.mkOnMeasure(widthMeasureSpec, heightMeasureSpec, desiredHeight, desiredWidth, onMeasureRunner);
}
}
private OnMeasure onMeasureRunner = new OnMeasure() {
@Override
public void apply(int width, int height) {
mRect.setRect(ViewUtils.offset, ViewUtils.offset, width - ViewUtils.offset, height - ViewUtils.offset);
setMeasuredDimension(width, height);
}
};
public static float defaultState() {
return 0.5f;
}
}