需求:想实现使用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);