CrosshairView.java 2.74 KB
package com.sw.laryngoscope.widget;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PorterDuff;
import android.graphics.RectF;
import android.graphics.Region;
import android.util.AttributeSet;

import com.sw.laryngoscope.common.Constant;
import com.sw.laryngoscope.manager.SpManager;
import com.sw.laryngoscope.utils.Logger;

/**
 * @des CrosshairView
 * @date 2023/7/10
 * @author gx
 */
public class CrosshairView extends androidx.appcompat.widget.AppCompatImageView {

    private float mWidth;
    private float mHeight;
    public static final int RIGHT = 90;

    private Paint m_paint;

    public CrosshairView(Context context) {
        super(context);
        init(context, null, 0);
    }

    public CrosshairView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context, attrs, 0);
    }

    public CrosshairView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init(context, attrs, defStyle);
    }

    private void init(Context context, AttributeSet attrs, int defStyle) {
        initPaint();
    }

    private void initPaint() {
        m_paint = new Paint();
        m_paint.setColor(Color.parseColor("#FF0000"));
        m_paint.setStrokeWidth(1);
        m_paint.setAntiAlias(true);
    }
    
    public CrosshairView setWidth(float width){
        this.mWidth = width;
        return this;
    }

    /**
     * @Params [height]
     * @Return com.sw.laryngoscope.widget.CrosshairView 
     * @Author gx
     * @Date 2023/7/10
     */
    public CrosshairView setHeight(float height){
        this.mHeight = height;
        return this;
    }

    /**
     *
     * @Title: setColor
     * @Description: 给三角形填充颜色
     * @param @param color
     * @return TriangleView this
     * @throws
     */
    public CrosshairView setColor(int color){
        invalidate();
        return this;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        paintLine(canvas);
    }

    private void paintLine(Canvas canvas) {
        mWidth = getWidth();
        mHeight = getHeight();
        int spacing = 0;
        // 2.设置竖线的位置
        float startX = mWidth / 2;
        float startY = spacing;
        float stopX = startX;
        float stopY = mHeight - spacing;

        //Logger.d( "startX " + startX);
        canvas.drawLine(startX, startY, stopX, stopY, m_paint);

        // 3.设置横线的位置
        startX = spacing;
        startY = mHeight / 2;
        stopX = mWidth - spacing;
        stopY = startY;
        canvas.drawLine(startX, startY, stopX, stopY, m_paint);
    }

}