自定义View(1)

点操作:moveTo和lineTo和rLinneTo的理解
1、lineTo
用于进行直线绘制。起点默认为坐标原点(左上),如果有path的存在,则是绘制的最后点为基准,坐标点对应的(0,0)到lineTo(x,y)的偏移量

比如

/**
 * 线操作
 * lineTo的偏移量相对于原点
 * rLineTo的偏移量相对于path的最后终点
 */
void getLine() {
    //设置Path
    //屏幕左上角(0,0)到(20,40)画一条直线
    path.lineTo(20, 40);
    //(20, 40)到(40,60)画一条直线
    path.lineTo(40, 60);
    //以(40,60)为起始点(0,0)偏移量为(40,60)画一条直线,
    //其终点坐标实际在屏幕的位置为(800,1200)
    path.rLineTo(40, 60);
}

归根结底,不同点为偏移量如何计算,一个为(0,0)开始计算,另一个根据path终点作为 起点计算,起点默认为坐标原点(左上),如果有path的存在,则起始点为最后绘制的终点,lineTo和rLineTo只是偏移量相对于原点还是相对于path的终点

2.点操作
是用来移动画笔的

/**
 * 点操作
 * moveTo将坐标系原点从(0,0)移动到(x,y),但是偏移量还是相对于(0,0)
 * 而rMoveTo则是相对于path的终点移动,偏移量同理不会改变上面代码中,打开注释的path.rMoveTo(0, 10),
 * 意为下一步操作起点位置由(40,40)变为(40+0,40+10)即为(40,50)
 */
void getDot() {
    //将坐标系原点从(0,0)移动到(10,10)
    path.moveTo(10, 10);
    //画从(10,10)到(40,40)之间的直线
    path.lineTo(40, 40);
    //path.rMoveTo(0, 10); //暂时注释
    path.lineTo(40, 80);
}

效果如图:


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值