android 使用canvas绘图保留痕迹

这篇博客探讨了在Android中使用Canvas进行绘图时如何保留痕迹的问题。通过示例代码展示了如何利用Bitmap和drawPath方法来实现这一功能。作者提到,尽管drawPaths可以绘制多条路径,但直接使用drawBitmap和drawPath可以更方便地达到目的。关键在于理解canvas的工作原理,以及为何需要两次drawPath操作来确保轨迹显示在自定义Bitmap上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不多说先上代码,API :11


public void ondraw(Canvas canvas) {

        canvas.drawBitmap(bitmap, 0, 0, null);  //自己定义的Bitmap

        canvas.drawPath(path, paint);   

           
           canvas.setBitmap(bitmap);        //设置在bitmap上画图            
           anvas.drawPath(path, paint);   //不再次调用就无法保留bitmap


}


虽然使用drawPaths可以绘制多条路径,但多有不便。

在此利用到了Bitmap


为什么需要两次drawPath呢?

个人分析如下:

在调用后

canvas.drawBitmap(bitmap, 0, 0, null); 

canvas.drawPath(path, paint);  

路径Bitmap没有画到了canvas的bitmap上,

而是画到我们自己定义的BItmap上,

所以不显示出来。

所以需要调用setBitmap(bitmap)函数

并且再draw一次(只是为了显示)。


drawline方法与之类似。



由于对canvas的画图机制还不是很了解,

所以不足之处请指正!






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值