android:如何用canvas在自定义view里画图

android:如何用canvas在自定义view里画图,第1张

做安卓开发的话,不会自定义view是不行的,自定定义各种控件以满足开发需求,在开发中是很重要的,自定义view通过继承view,通过重写ondraw方法实现重绘自己所需要的控件样式

在ondraw方法中,通过canvas来绘制想要的样式,首先需要定义好画笔,以及画笔的各种属性,比如需要的时候要

抗锯齿

等等。都准备好了就可以用canvas来实现绘图了,当然api提供的api肯定是不够用的,需要多姿多彩的样式很多时候需要借助准备好的一些,通过canvas绘制bitmap来实现把准备好的绘制上去。绘制好了当然还是不够的,控件都是需要和用户交互的,所以很多时候样式是会发生改变的,所以要在其中定义相关方法暴露出来,方法中处理用户 *** 作或其他的结果改变样式的重绘,绘制好了调用更新(

invalidate

())方法,实现样式的改变。做好一个控件还需要优化性能等等,都需要一步一慢慢实现。

var canvas = documentgetElementById("demoCanvas"); 获取canvas元素

ctx = canvasDomgetContext('2d'); 获取上下文

ctxmoveTo(0,0) 设置起始点

ctxlineTo(100,100) 设置终点

ctxlineWidth = 8; 线宽度

ctxstrokeStyle = "red" 设置颜色

ctxstroke() 显示

ctxfillStyle = "pink"; 填充色

ctxfill() 填充

ctxclosePath() 结束

ctxbeginPath(); 开启一个新状态绘图

ctxrect(x,y,w,h) 绘制一个矩形 //前两参数起始点坐标,后两参数宽高

ctxstrokerect(x,y,w,h) 直接显示矩形,不需要ctxstroke()

ctxfillrect() 被填充直接显示的矩形

ctxclearRect(x,y,w,h) 清除矩形 --重要

ctxarc(x,y,sAngle,eAngle,count) //绘制圆形 x坐标/y坐标/半径/绘制开始角度/绘制结束角度/逆时针绘制

ctxshadowColor="tael" 设置阴影的颜色

ctxshadowBlur=10 设置阴影模糊级别

ctxshadowOffsetX=10 设置阴影距离形状的水平距离

ctxshadowOffsetY=10 设置阴影距离形状的垂直距离

(少用,性能比较差,尽量让UI做)

var grd=ctxcreateLinearGradient(0,0,170,0) 创建一个线性渐变,参数,两个点坐标

grdaddColorStop(0,'pink') // 添加一个新的渐变色

grdaddColorStop(1,'pink') // 添加一个新的渐变色

ctxfillstyle = grd 把渐变设置到填充样式

ctxfillRect(0,0,300,300) 创建一个矩形

ctxtranslate(200,200) 把当前画布移动到坐标点

ctxrotate(30MathPI/180) 旋转画布,参数为度数

ctxscale(2,2) 画布缩小或放大,参数倍数

ctxglobalAlpha=03 设置画布透明度

ctxsave() 把当前上下文状态保存起来

ctxrestore() 把之前保存画布的状态还原

ctxtoDataURL('img',1) 画布保存为base64编码

ctxdrawImage(canvas1,10,10) 把一个画布放到另一个画布上,可以让canvas优化

ctxarcTo(240,100,240,110,40) //做圆角用 端点1坐标,端点2坐标,半径

Konva库的使用

你看看是不是ink功能没有打开。

这个软件是需要在数位板设置里把windows ink功能打开,才能够使用画笔的。

此外,目前好像一定要用Apple Pencil才能画。

以上就是关于android:如何用canvas在自定义view里画图全部的内容,包括:android:如何用canvas在自定义view里画图、canvas指令大全、mental canvas画笔用不了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9279594.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存