
做安卓开发的话,不会自定义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画笔用不了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)