android之canvas.draw方法需要注意的地方

如果需要在上图布局中画一个矩形(大小为上图布局一样大),并且线条宽为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)这个点;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值