如果需要在上图布局中画一个矩形(大小为上图布局一样大),并且线条宽为10dp即20px,需要实现后的效果如下(此篇使用的是1dp=2px的比例,用的时候请根据实际来进行换算):
布局高度int height = 100; //单位px
布局宽度int width = 200; //单位px
线条宽度int strokeWidth = 20; //单位px
那么,步骤:
1.画笔:
Paint paint = new Paint();
2.线条宽为10dp即20px,那么设置画笔为描边Stroke:
paint.setStrokeWidth(20); //线条宽20px
paint.setStyle(Paint.Style.STROKE); //设为描边,这样中间就是空的,不会被填充
3.那么开始画矩形,则位置必须是图中黑色线条位置来画,因为线条有宽度,也占了宽度的,所以画的时候位置
必须取线条中间 ,即图中黑色线条画的矩形,所以正确的画矩形应该是:
canvas.drawRect(strokeWidth/2,strokeWidth/2,width-strokeWidth/2,height-strokeWidth/2,paint); //左上右下,画笔
延伸:
1.如果画矩形,如果不描边,即没有
paint.setStrokeWidth(20);和paint.setStyle(Paint.Style.STROKE);,那就直接以红色矩形的左上角为点画即可
2.如果画一个圆环,如下图,也是有描边,那么画圆的时候半径就是布局的一半减去线条宽度的一半
3.如果画线,drawline,如下图所示,若有
paint.setStrokeWidth(20) ,则表示画线的线条粗细为20px,那么画的时候坐标点就是下图红点,即左边界线条的中间点,即(0,10)这个点;