需求:想实现使用canvas绘制矩形

实现如下:

@SuppressLint("AppCompatCustomView")
public class MyImageView extends ImageView {

    private Paint paint;
    public MyImageView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);

        //初始化画笔
        paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        paint.setColor(Color.GREEN);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(6f);
        paint.setAlpha(180);
    }

    /**
     * 更新数据,重绘View
     */
    public void notifyView() {
        invalidate();
    }


    @Override
    protected void onDraw(Canvas canvas) {

        float width = getWidth();
        float height = getHeight();

        canvas.drawRect(20,20,width/2,height/2,paint);
        super.onDraw(canvas);
    }
}

代码解释:

第一步:创建画笔

paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.GREEN);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(6f);
paint.setAlpha(180);

第二步:绘制矩形

        float width = getWidth();
        float height = getHeight();

        canvas.drawRect(20,20,width/2,height/2,paint);